I think I can solve it with a bit of javascript, but the current cart implementation works very well without javascript as well. I made sure of it in fact.
One of the submit instances is actually when changing the country or changing the province for Canada. That works by having the default action of the submission set to refreshing. That's why I need to set that value in the first place (to make it go beyond a refresh).
With javascript enabled, the refresh happens automatically when you alter the setting of the country pop-up menu. With no javascript a small update/apply button appears and you have to manually press that after you change country to cause it to update the form.
When the form updates, other attributes are set depending on which country is selected (address format, tax, shipping, etc.) All values already in the form are preserved because it was a form submitted back to itself.