Thanks to all responses. Unfortunately they didn't work.
Explicitly setting region to Canada-English still had United States hard-coded as the region on the upgrade payment page. Interestingly, it was correctly Canada on the payment page for selecting an Economy Plus seat, so I did that instead for less money and will be fine. Seems it's a bug.
I like MTan's postal code trick and have used it in the past at gasoline pumps. Unfortunately there is no state that issues zipcodes starting with the first 2 numerics in my Canadian postal code, and it didn't like Oklahoma and Ohio, which are letterwise closest to my province of residence.
Good weekend to all!