Someone created a module for this called
uc_clear roles so you can stop what's happening to me now which is when a new role is purchased it is just added to the old one.
But this module is only for Drupal 6 and I am using 7.
Logintoboggan preauthorize role if the user neglects to verify it and then buys a role, the new role will replace it but if verified and user makes purchase for upgrade they end up with both free membership status as well as paid. I don't yet know how to write php or create a module but, could the RULES module do the job?