Your priority would be to find out why the checkout procedure sometimes goes from Step 3- confirmation, back to Step 2-enter payment info, instead of going to checkout_success, without any error message, and with the global variable $shipping getting lost.
When this happens, it is possible to get the order thru. If the customer tries again from the checkout_shipping page, they may have to try 10 or more times to get it thru. (most don't try that hard!) Another way to clear the problem is to sign off, close the browser, start a new session in a new window. Checkout then goes thru with no snags. It does not seem to matter how many items they have in the cart, or which items, or what type of shipping is selected, or even which payment method is used.
Right now, the site is set up to go from the shopping cart to a page that combines the shipping and payment pages([login to view URL]). The original files are still in place, so feel free to change the link in the shopping cart to the original checkout_shipping.php. The payment gateway is in test mode, so you can do test orders without concern. You can use VISA 4111-1111-1111-1111, a future exp date, and any CVV, or choose to pay by check.
I've got abit of OSCommerce Experience, as well as the daddy to OSC - Zencart. Please see PM for URL's of working websites that relate to yours. I'm the only developer - not a company with lots of people for your project to get lost in, so you get the one-on-one that your website needs. Also, I'm from Atl, GA and speak great English, all be-it Southern English... Let me know if you're interested. Times money for Online Storefronts, and your sites down! :)