It seems that the google finance price call is broken when you add the market to the end of the stock price, ie
BNS.TOI can use BNS as the stock ticker and it happens to give the Canadian price.
However, when I use something like XIN, I get a real estate company listed on the NYSE instead of
XIN.TO which is an international index on the TSE.
With a price around $5 for one and $25 for the latter, it had a shocking effect on my protfolio.
Any of my USA based stocks work just fine. If the stock ticker is in multiple markets, the finance call just picks the USA first.
So basically, in the eyes of google finance, the Canadian market doesn't exist :)