Remove old role once new one purchased
Yes, you can use Rules to manage roles.

Rules need Event to react on, Condition to evaluate for truth, Action to perform.

Event: It is hard to tell from from your post what would be your Event. I don't use Ubercart, but I assume it provides some Rules Events like Commerce, e.g. 'After adding a product to the cart,' 'On checkout coompletion,' and so on. There's also 'Before saving a user account,' 'After saving a user account' and so on.

Condition: "User has role(s)"

Action: "Add user role", "Remove user role" 

Very simple actually.

[ Note also that the current version of Rules (2.8) is BROKEN with Commerce 2 ... not sure if the problem also exists with Ubercart ... users of Commerce have to downgrade Rules to 2.7 ]