We have configured our Ubercart installation with two fixed-rate shipping options: Free Ground Shipping and $60 Overnight Shipping. They are presented to the customer in this order.
We have also deployed this autocalc_shipping contributed module (http://www.ubercart.org/contrib/3633), which does nothing more than push a 1-liner jquery script that clicks the "Calculate Shipping Cost" button on page render so the user does not have to.
If the user submits the form with invalid information - such as invalid CC# - the same form comes back with an error message at top (as expected), but the "Calculate Shipping Cost" radio buttons do not retain their previously-selected value.
In our case, for example, if a user selects "$60 Overnight Shipping" and enters an invalid CC#, the form comes back with Free Ground Shipping selected (instead of the "$60 Overnight Shipping") alongside the error messages.
