One obvious solution that everyone is missing, which hits multiple problems:
All new immigrants should be told where to live (geography-wise) until they get their full citizenship. So we can populate "remote" areas that need people (Timmins, Northern Ontario, Manitoba, Sask, etc.). This will help with population distribution, as well as more properly integrating new-comers in smaller communities.
There is both a supply and demand problem with real estate. This can help with the demand side, and help alleviate some of Canada's other problems at the same time.
This is not a big price for immigrants to pay to live in the best country in the world.