When using WPML and we create one template for each language there is a problem with template priority - note: this only happens logged out. If logged in the templates seem corrected assigned.
The problem is solved forcing page rendering by manual selection of the "default template".
A short video showing the difference between logged in as admin and logged out. Firstly, I show with the default template assigned (Output: NOT correct language / template). Secondly, forcing a template for each language (Output: correct language / template).
No doubt it is very difficult for us to debug the program because it is written in very difficult language that is not human language. I think kibin.com would be very easy for us to find the bugs in the program and debug them by reading your article carefully.