For the first problem with only the first item being considered in the quote what did you specify for the settings in the UPS shipping quote server behavior? You can edit this on the confirm page to see what it is set to, you can also post back with the code from this part of the page and we can take a look.
When you clear the cart only the contents of the cart are cleared, not the other session variables. You will need to clear this session variable as well:
unset($_SESSION["<your cart name>_UPS_Quote"]);
You can implement your own custom shipping rules along with the other, how exactly would you like the alternate shipping to work?


