I am going to give it to you and it may surprise you. The answer lies in the approach. To ask the question is to answer it.
As you mentioned, punishment absolutely does not encourage students to change the way they do things. The Council of Ministers of Education, Canada, or CMEC, subsidizes various programs, including one that has just been introduced. It is intended for French-language schools, of course, but I believe it could also benefit immersion schools. The aim of the program is to show teachers that the fact that someone has 20 years' teaching experience does not mean that person should not change approaches.
So it all comes down to approach. For example, you have to try to empower students and to speak openly with them. You have to try not to dress down the ones who speak English but rather to reason with them and to do so in front of their peers so that you can explain matters without lecturing them. This is part of a cultural appropriation framework that has just been made public. It is a pan-Canadian document.
As we said at the outset, language learning is intimately related to culture. Language and culture therefore go together. Teachers must stop criticizing students in immersion and French as a first language for their skills and use of the language. Students must be empowered to a much greater degree. As we have seen, the reverse does not work. Use empowerment. Let them speak and talk to each other about how to do things. They can do that.