Here is the header file for checkout

I am having an issue where the shipping selection is not passed to the shipment confirmation page:

PHP Code:
  $zco_notifier->notify('NOTIFY_HEADER_START_CHECKOUT_PAYMENT');

// if there is nothing in the customers cart, redirect them to the shopping cart page
if ($_SESSION['cart']->count_contents() <= 0) {
    
zen_redirect(zen_href_link(FILENAME_TIME_OUT));
}
// if the customer is not logged on, redirect them to the login page
  
if (!$_SESSION['customer_id']) {
    
$_SESSION['navigation']->set_snapshot();
    
zen_redirect(zen_href_link(FILENAME_LOGIN'''SSL'));
  } else {
    
// validate customer
    
if (zen_get_customer_validate_session($_SESSION['customer_id']) == false) {
      
$_SESSION['navigation']->set_snapshot();
      
zen_redirect(zen_href_link(FILENAME_LOGIN'''SSL'));
    }
  }
// avoid hack attempts during the checkout procedure by checking the internal cartID
if (isset($_SESSION['cart']->cartID) && $_SESSION['cartID']) {
  if (
$_SESSION['cart']->cartID != $_SESSION['cartID']) {
    
zen_redirect(zen_href_link(FILENAME_CHECKOUT_SHIPPING'''SSL'));
  }
}
// get coupon code
if ($_SESSION['cc_id']) {
  
$discount_coupon_query "SELECT coupon_code
                            FROM " 
TABLE_COUPONS "
                            WHERE coupon_id = :couponID"
;

  
$discount_coupon_query $db->bindVars($discount_coupon_query':couponID'$_SESSION['cc_id'], 'integer');
  
$discount_coupon $db->Execute($discount_coupon_query);
}
// if no billing destination address was selected, use the customers own address as default
if (!$_SESSION['billto']) {
  
$_SESSION['billto'] = $_SESSION['customer_default_address_id'];
} else {
  
// verify the selected billing address
  
$check_address_query "SELECT count(*) AS total FROM " TABLE_ADDRESS_BOOK "
                          WHERE customers_id = :customersID
                          AND address_book_id = :addressBookID"
;
  
$check_address_query $db->bindVars($check_address_query':customersID'$_SESSION['customer_id'], 'integer');
  
$check_address_query $db->bindVars($check_address_query':addressBookID'$_SESSION['billto'], 'integer');
  
$check_address $db->Execute($check_address_query);
  if (
$check_address->fields['total'] != '1') {
    
$_SESSION['billto'] = $_SESSION['customer_default_address_id'];
    
$_SESSION['payment'] = '';
  }
}
require(
DIR_WS_CLASSES 'order.php');
$order = new order;
require(
DIR_WS_CLASSES 'order_total.php');
$order_total_modules = new order_total;
$order_total_modules->collect_posts();
$order_total_modules->pre_confirmation_check();
//  $_SESSION['comments'] = '';
$comments $_SESSION['comments'];
$total_weight $_SESSION['cart']->show_weight();
$total_count $_SESSION['cart']->count_contents();
// load all enabled payment modules
require(DIR_WS_CLASSES 'payment.php');
$payment_modules = new payment;
$flagOnSubmit sizeof($payment_modules->selection());
// Load the selected shipping module(needed to calculate tax correctly)
require(DIR_WS_CLASSES 'shipping.php');
$shipping_modules = new shipping($_SESSION['shipping']);
require(
DIR_WS_MODULES zen_get_module_directory('require_languages.php'));
if (isset(
$_GET['payment_error']) && is_object(${$_GET['payment_error']}) && ($error = ${$_GET['payment_error']}->get_error())) {
  
$messageStack->add('checkout_payment'$error['error'], 'error');
}
$breadcrumb->add(NAVBAR_TITLE_1zen_href_link(FILENAME_CHECKOUT_SHIPPING'''SSL'));
$breadcrumb->add(NAVBAR_TITLE_2);
// This should be last line of the script:
$zco_notifier->notify('NOTIFY_HEADER_END_CHECKOUT_PAYMENT');
$zco_notifier->notify('NOTIFY_HEADER_START_CHECKOUT_SHIPPING');
  require_once(
DIR_WS_CLASSES 'http_client.php');
// Validate Cart for checkout
  
$_SESSION['valid_to_checkout'] = true;
  
$_SESSION['cart']->get_products(true);
  if (
$_SESSION['valid_to_checkout'] == false) {
    
$messageStack->add('header'ERROR_CART_UPDATE'error');
    
zen_redirect(zen_href_link(FILENAME_SHOPPING_CART));
  }
// Stock Check
  
if ( (STOCK_CHECK == 'true') && (STOCK_ALLOW_CHECKOUT != 'true') ) {
    
$products $_SESSION['cart']->get_products();
    for (
$i=0$n=sizeof($products); $i<$n$i++) {
      if (
zen_check_stock($products[$i]['id'], $products[$i]['quantity'])) {
        
zen_redirect(zen_href_link(FILENAME_SHOPPING_CART));
        break;
      }
    }
  }
// if no shipping destination address was selected, use the customers own address as default
  
if (!$_SESSION['sendto']) {
    
$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
  } else {
// verify the selected shipping address
    
$check_address_query "SELECT count(*) AS total
                            FROM   " 
TABLE_ADDRESS_BOOK "
                            WHERE  customers_id = :customersID
                            AND    address_book_id = :addressBookID"
;
    
$check_address_query $db->bindVars($check_address_query':customersID'$_SESSION['customer_id'], 'integer');
    
$check_address_query $db->bindVars($check_address_query':addressBookID'$_SESSION['sendto'], 'integer');
    
$check_address $db->Execute($check_address_query);
    if (
$check_address->fields['total'] != '1') {
      
$_SESSION['sendto'] = $_SESSION['customer_default_address_id'];
      
$_SESSION['shipping'] = '';
    }
  }
  
$order = new order;
// register a random ID in the session to check throughout the checkout procedure
// against alterations in the shopping cart contents
  
$_SESSION['cartID'] = $_SESSION['cart']->cartID;
// if the order contains only virtual products, forward the customer to the billing page as
// a shipping address is not needed
  
if ($order->content_type == 'virtual') {
    
$_SESSION['shipping'] = 'free_free';
    
$_SESSION['shipping']['title'] = 'free_free';
    
$_SESSION['sendto'] = false;
    
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT'''SSL'));
  }
  
$total_weight $_SESSION['cart']->show_weight();
  
$total_count $_SESSION['cart']->count_contents();
// load all enabled shipping modules
  
$shipping_modules = new shipping;
  if ( 
defined('MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING') && (MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING == 'true') ) {
    
$pass false;
    switch (
MODULE_ORDER_TOTAL_SHIPPING_DESTINATION) {
      case 
'national':
        if (
$order->delivery['country_id'] == STORE_COUNTRY) {
          
$pass true;
        }
        break;
      case 
'international':
        if (
$order->delivery['country_id'] != STORE_COUNTRY) {
          
$pass true;
        }
        break;
      case 
'both':
        
$pass true;
        break;
    }
    
$free_shipping false;
    if ( (
$pass == true) && ($_SESSION['cart']->show_total() >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) ) {
      
$free_shipping true;
    }
  } else {
    
$free_shipping false;
  }
  require(
DIR_WS_MODULES zen_get_module_directory('require_languages.php'));
  if (isset(
$_SESSION['comments'])) {
    
$comments $_SESSION['comments'];
  }

// process the selected shipping method
  
if ( isset($_POST['action']) && ($_POST['action'] == 'process') ) {
    if (
zen_not_null($_POST['comments'])) {
      
$_SESSION['comments'] = zen_db_prepare_input($_POST['comments']);
    }
    
$comments $_SESSION['comments'];
    if ( (
zen_count_shipping_modules() > 0) || ($free_shipping == true) ) {
      if ( (isset(
$_POST['shipping'])) && (strpos($_POST['shipping'], '_')) ) {
        
$_SESSION['shipping'] = $_POST['shipping'];
        list(
$module$method) = explode('_'$_SESSION['shipping']);
        if ( 
is_object($$module) || ($_SESSION['shipping'] == 'free_free') ) {
          if (
$_SESSION['shipping'] == 'free_free'
            
$quote[0]['methods'][0]['title'] = FREE_SHIPPING_TITLE;
            
$quote[0]['methods'][0]['cost'] = '0';
          } else {
            
$quote $shipping_modules->quote($method$module);
          }
          if (isset(
$quote['error'])) {
            
$_SESSION['shipping'] = '';
          } else {
            if ( (isset(
$quote[0]['methods'][0]['title'])) && (isset($quote[0]['methods'][0]['cost'])) ) {
              
$_SESSION['shipping'] = array('id' => $_SESSION['shipping'],
                                
'title' => (($free_shipping == true) ?  $quote[0]['methods'][0]['title'] : $quote[0]['module'] . ' (' $quote[0]['methods'][0]['title'] . ')'),
                                
'cost' => $quote[0]['methods'][0]['cost']);
              
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT'''SSL'));
            }
          }
        } else {
          
$_SESSION['shipping'] = false;
        }
      }
    } else {
      
$_SESSION['shipping'] = false;
      
zen_redirect(zen_href_link(FILENAME_CHECKOUT_PAYMENT'''SSL'));
    }
  }
// get all available shipping quotes
  
$quotes $shipping_modules->quote();
  
// Should address-edit button be offered?
  
$displayAddressEdit = (MAX_ADDRESS_BOOK_ENTRIES >= 2);
  
// if shipping-edit button should be overridden, do so
  
$editShippingButtonLink zen_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS'''SSL'); 
  if (isset(
$_SESSION['payment']) && method_exists($$_SESSION['payment'], 'alterShippingEditButton')) {
    
$theLink = $$_SESSION['payment']->alterShippingEditButton();
    if (
$theLink) {
      
$editShippingButtonLink $theLink;
      
$displayAddressEdit true;
    }
  }
  
$breadcrumb->add(NAVBAR_TITLE_1zen_href_link(FILENAME_CHECKOUT_SHIPPING'''SSL'));
  
$breadcrumb->add(NAVBAR_TITLE_2);
// This should be last line of the script:
  
$zco_notifier->notify('NOTIFY_HEADER_END_CHECKOUT_SHIPPING');