I was able to set up Google Merchant for the US side since Google recently added courier rates, but not in Canada. The issue I'm running into is our UPS rates are based on weight, dimensions, and distance. I know Google says to set up shipping to be equal to or more than your rates to not get disproved. Shipping can be set with weight estimates but the distance is quite broad. For example, shipping the same item to Ontario would be around $20 but BC could go up to $100. If I use $20 I'll get disproved but if I use $100 customers will be turned off.
How can I set it up so it won't be disproved but not discourage customers?
For Courier based rates you need to use the default system in Google Merchant Center (GMC). IE: if you use UPS, than select UPS in GMC.
You can add a positive modifier percent or fixed value if Google is undercharging the shipping.
Yes the shipping in GMC needs to be equal or an overestimate.
Google checks this regularly so you should make sure it is correct or risk suspension.
Alternatively, use a fixed shipping price on your website that you want to charge, and match these values in GMC.
Then you need to setup manual rates as you mention. To know how, check here: https://support.google.com/merchants/answer/6069284?hl=en