SHIPPING

   $rates = $quote->getShippingAddress()->getShippingRatesCollection();
   foreach ($rates as $rate)
     {
       $rate->setPrice(0.00)->save();
     }

For Returning the values you should recalculate the Rules

  $quote->getShippingAddress()->setCollectShippingRates(true)->collectShippingRates();

QUOTE ITEM

 foreach ($quote->getAllVisibleItems() as $item) {
   $item->setCustomPrice( $item->getProduct()
       ->getPrice())->setOriginalCustomPrice($item->getProduct()->getPrice())
       ->getProduct()->setIsSuperMode(false);
   $item ->getProduct()->setTaxClassId(0);
   $item->calcRowTotal();
}