Great question — answering as the UphillTech team:
UPDATE 2: (Without any plugin need, just settings and code) The function below will always show "Local pickup" shipping for canada and will: Hide free shipping methods when "Oversize" shipping class is in cart items. For the "Flat rate" Shipping Methods, the cost will be the one set for "Oversize" shipping class. if "Oversize" Shipping Class is not set in cart items: If cart amount is less than the target free shipping amount: Hide "Free shipping". If cart amount is over the target free shipping amount: Hide "Flat rate" Shipping Methods. Here is that code: add_filter('woocommerce_package_rates', 'wf_hide_shipping_method_based_on_shipping_class', 100, 2); function...
Full answer by LoicTheAztec: https://stackoverflow.stackexchange.com/a/47373289 (CC BY-SA 4.0).
Need it done for your business? UphillTech.