Hyde here from Shopify. That's an interesting question!
Shipping rates can only really be determined based on order weight or value, not on the shipping method, as you can read in this help document. Here's a screenshot of it:
Really your best bet, in this case, would be to make use of a shipping app like Advanced Shipping Rules or Bespoke Shipping. They can create different shipping rates based on the selected delivery method.
I'm not sure I've entirely understood what you mean when you say "I am passing locale=en-CA in the URL for pickup and locale=en for delivery." Could you explain that a little more for me, please?
All the best, Hyde.
You are able to do a in-store pick up workaround using weight based shipping.
Your customer will have to add this specific item to the cart every time they would like to pick up. You are able to instruct the customer to leave a note with pick up information/instructions.
You might however run into issues will customers who will abuse of this system just to get free shipping. (We get one every now and than and we use an app)
The other option is to use an App that does that for you: here is a list of in-store pick up apps