I am looking for a tool or service where I can test my website from different provinces in Canada. I looked into VPN services but they don't offer specific locations in Canada.
It strongly depends on the budget that you can invest in this testing session indeed, there are companies offering third party testing services. For example there is a famous platform called uTest-Applause (http://www.applause.com/) offering that kind of service all around the world (so I suppose that Canada is included).
Crowd Testing seems to be a valid solution for such requirement. CrowdSourcedTesting seems to be a good candidate to fulfill your requirements as they have adequate pool of testers from different provinces of Canada. I am not sure about their pricing but i think they will be more economical as compared to applause (which is a crowd-testing giant).
Another option is to hire testers directly via websites like up-work.
If you are doing performance testing you might want to look into using LoadUI by SmartBear and coupling that with Amazon Web Services. LoadUI can direct agent computers in the AWS network to send network requests to your server. You select where the source computers are located, what requests you would like to make and at what load level. The cheapest/slowest level AWS servers available will be suitable.
If you want to see if your website loads on different mobile browsers, you can use Keynote. They have a free service which allows you to take control of a mobile device for 30 mins manually. If you want a specific device, or want to send load from one or more devices, or write & run automation scripts, that costs a little more.
If you'd like to test your website or web app on mobile devices with actual human users, you might want to look at MobTest. You specify the location(s), handset(s) and testing tasks you would like performed, and Mobsters submit a bid. You choose the people you want for the job, and they do the work and let you know what they found.
If you are lucky enough to have branch offices of your organization in the target cities, you can coordinate with the IT personnel there to have them set up VPNs for you. They can set rules such that only requests from or to certain IP addresses (ie. your office as the source and the target web server as the destination) are recognized. This will minimize the security attack surface and chance of someone else hijacking your VPNs for nefarious purposes.