There is a bug in the change address section [ both billing and shipping ] such that it always show the primary address . After applying this you can change the billing and shipping address

******ALWAYS TAKE BACKUP OF FILE BEFORE YOU CHANGE******

Uploaded File
--------------
checkout.php

Replace with the old file only if you have fresh installation else follow these steps

1. Find

$billingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL')).'
'; - Line 361

Replace that with

//$billingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL')).'
';
$billingAddress .= ''.IMAGE_BUTTON_CHANGE_ADDRESS.'
';

2. Find

$shippingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL')).'
'; - Line 382

Replace that with

//$shippingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL')).'
';
$shippingAddress .= ''.IMAGE_BUTTON_CHANGE_ADDRESS.'
';

3. Find

$shippingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL')).'
'; - Line 390

Replace it with

//$shippingAddress .= ''. tep_draw_button(IMAGE_BUTTON_CHANGE_ADDRESS, 'home', tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL')).'
';
$shippingAddress .= ''.IMAGE_BUTTON_CHANGE_ADDRESS.'
';

Hope this helps some

More...