It appears that almost all the difference between the election outcome and the last pre-campaign polls was last minute switching in Ontario including a fair bit of NDP to Liberal strategic voting. This is the first time I can recall such a late shift in Canada.
As for my seat projection model it appears to have worked about as well as one can expect. The large errors in the seat totals stem from the difference between what the polls said would happen in Ontario, and what actually happened.
When I input the preliminary regional vote shares from cbc.ca I get the following outcome nationally: Liberal - 137 (Current actual is 135), Conservative - 95 (Current actual is 99), NDP - 22 (Current actual is 19), and BQ - 54, the same as their current total.
Seat by seat comparison will come later but it looks like, even based on those notoriously inaccurate pre-election day polls, that I correctly identified the winner in every seat in Alberta and all but two in Quebec.