This may not cover all your needs, and it can be convoluted, but it is free. Get a Google Voice account when you are in the States. (You cannot get a US number if you are using a Canadian IP address) With Google Voice, you can SMS, and forward numbers for free. You can get a Seattle number, which is nice.
The only problem with Google Voice is you cannot forward calls to directly to Vancouver. You can forward calls to Calgary for some reason though. So there is a fix. Sign up to Freephoneline.ca. Download the soft phone. Select a Calgary number, and forward that number to Vancouver. Google Voice can now forward to Vancouver when you add that Rube Goldburg step.
Once set up, this works rather nicely. All for free. If you have a data plan, you can now send and receive free SMS messages to anyone in North America.