Ok, I wrote down the steps I took to get multiple USPS shipping options working for me. I DID NOT try it with other non-USPS shipping modules, so your mileage may vary. I should note, I tried GldRush98's responsehandler.php, but as a direct replacement, it did not work. I also tried roku's fix, but that did not work for me either.

Here's the steps I took:
  1. Installed fresh ZC 1.3.6
  2. Installed fresh GCO 1.0.5 (overwriting any existing ZC files)
  3. Modified includes/modules/payment/googlecheckout.php
    1. Added Media Mail in array
    2. Commented out Bound Printed Material and Library
    3. Note: I moved the ")," at end of Library line to new uncommented line
  4. ZC Admin->Modules->Shipping->USPS->Install
    1. Entered in Web Tools User ID
    2. Changed Shipping methods (only left express, priority, first class, parcel and media selected)
  5. ZC Admin-> Uninstalled all other shipping modules
  6. ZC Admin->Modules->Payment->GoogleCheckout->Install
    1. Entered Merchant ID/Key
    2. Set fallback prices for shipping methods
  7. ZC Admin->Configuration->Postal Code
    1. Set Postal Code
  8. ZC Admin->Catalog->Categories/Products
    1. Added new test category and test products
  9. sandbox.google.com Admin->Settings->Integration
    1. Set API Callback URL
  10. **TEST #1**
    1. Went to new store front-end, added test product (weight was 1lb) to cart
    2. Clicked Estimate Shipping button:
      Express - $25.50
      Priority - $5.60
      Parcel Post - $5.35
      Media Mail - $3.03
    3. Clicked Google Checkout button
    4. Shipping & Handling dropdown on Google Checkout page contained:
      Express - $22.20
      First Class - $22.20
      Priority - $22.20
      Parcel Post - $22.20
      Media Mail - $22.20
    5. None of the numbers match and First Class shouldn't be available!
  11. Modified googlecheckout/responsehandler.php (line 353)
    changed:
    Code:
    global $googlepayment, $order, $db;
    to:
    Code:
    global $googlepayment, $order, $db, $total_weight;
  12. **TEST #2**
    1. Shipping & Handling dropdown NOW contains:
      Express - $25.50
      First Class - $25.50
      Priority - $25.50
      Parcel Post - $25.50
      Media Mail - $25.50
    2. At least one of the numbers match but still not right, and it's still showing First Class as available!
  13. Modified googlecheckout/responsehandler.php (lines 422-441)
    replaced:
    Code:
    if(isset($data[$root]['calculate']['shipping'])) {
    		        $shipping = get_arr_result($data[$root]['calculate']['shipping']['method']);
    		        foreach($shipping as $curr_ship) {
    		         	$name = $curr_ship['name'];
    		            
    		            //Compute the price for this shipping method and address id
    		        
    			        list($a, $method_name) = explode(': ',$name);
    		   
    			        //print_r($order);
    			        $methods_hash[$method_name][0]. $methods_hash[$method_name][2]."\n";
    		            $quotes = $shipping_modules->quote($methods_hash[$method_name][0], $methods_hash[$method_name][2]);
    		            //print_r($shipping_modules);
    		            $price = $quotes[0]['methods'][0]['cost'];
    		            $shippable = "true";
    		            //if there is a problem with the method, i mark it as non-shippable
    		            if(!isset($quotes[0]['methods'][0]['cost']) || isset($quotes[0]['error'])) {
    		            	$shippable = "false";
    		            	$price = "0";
    		            }
    with:

    Code:
    if(isset($data[$root]['calculate']['shipping'])) {
    		        $shipping = get_arr_result($data[$root]['calculate']['shipping']['method']);
                            //Let's just get all the quotes at once
    		        $quotes = $shipping_modules->quote();
    		        foreach($shipping as $curr_ship) {
    		         	$name = $curr_ship['name'];
    		         	list($a, $method_name) = explode(': ',$name);
    		         	$quote_id=0;
                            // Not all methods are returned, such as First Class if
                            // weight >13oz, so need to marked as not shippable below
    					while (($quotes[0]['methods'][$quote_id]['id'] != $methods_hash[$method_name][0]) && $quote_id<count($quotes[0]['methods'])) {
    						$quote_id++;
    					}
    		         	$price = $quotes[0]['methods'][$quote_id]['cost'];
    					
    					$shippable = "true";
     					if(!isset($quotes[0]['methods'][$quote_id]['cost']) || isset($quotes[0]['error'])) {
            				$shippable = "false";
            				$price = "0";
        				}
  14. **TEST #3**
    1. Shipping & Handling dropdown NOW contains:
      Express - $25.50
      Priority - $5.60
      Parcel Post - $5.35
      Media Mail - $3.03
    2. Finally, Google Checkout matches the Zen Cart shipping estimate!


I'm sure there's a more "programmatically correct" way to deal with it, unfortunately my PHP skills are lacking. Again, I have not tested it with other shipping modules enabled so it may not play nicely with others. Also, I didn't get a chance to try it out with tax so I'm not sure if it works with tax. I plan to have a look at that later.

Happy New Year!

Shawn