You are talking about young Canadians. They are probably young people between 18 and 25 years old. Instead of getting foreign workers, would it not be possible to send these young people for three months in the summer to work in a restaurant in Alberta? Instead of setting up programs, we could promote bilingualism indirectly. That might work.
If a number of students from Quebec were guaranteed a job for three months in an anglophone province, I am sure that they would try it out. Perhaps the reverse would also be true.