The real problem here is identifying the topic of some text. Once topics can be identified, the general problem is solved. This is true whether it is for Montreal or baseball or hot yoga or hedge funds.
Take a look at www.topicscout.com if you want to see a system that can handle 10,000 to 100,000 topics and many more. Disclaimer: I built topicscout.
So the problem here is Watson doesn’t understand topics. If it did, and it knew about the topic ‘Montreal’, it would have gotten the right answer even if Montreal isn’t mentioned in the text. If a topic for Montreal identifies salient aspects of Montreal, it will recognize Montreal.
Note that there are limits to this approach. If less well known city streets etc, then a different approach might be needed. I won’t drill into that.
If, however, deep AI is not what you need — and you only care about getting the job done for recognizing places — take a look at Klavin, open source for recognizing places based on text. Last I looked several years ago, it only worked for the USA and some parts of Europe, but it works very well for the USA. Take a look at how they find the right ‘Springfield’ even when there are multiple Springfields in the same state! Pretty impressive.
Klavin used to have an online page where you could paste in text and Klavin would identify the place associated with the text. You could try your text using that online page if it is still available.