I think a lot of the Bay Area power comes from having so many tech folks in one place, which is hard for Canada to manage anywhere given population. In the Bay Area, you can go for a coffee or a beer and run into a bunch of tech folks and something may come out of that. There's no where in Canada where tech has the density to make that happen in a random way (maybe Ottawa or Waterloo back in the day).
Immigration can help, for sure bringing smart minds in is never a bad thing. I've only lived in Ottawa and Toronto, I think creating the critical mass of tech folks is difficult in those cities which have other more dominant industries (government and financial/cpg respectively).
Agree that past success fuels the mentality that builds the future.
After having been so successful being an employee at two startups that did well, I started my own company a couple of weeks ago. It's absolutely amazing the amount of support you get here, and the network of people who you can tap to ask questions and help out in your venture.
Vancouver and Toronto both have parts of the equation, but they don't have the whole package. And neither of them have the kind of past success which breeds future success.