It usually happens to me when the status of the header is out of sync with the status of the web page being displayed. For example:
I sign in. The header does not show that I am signed in, but the page requiring that I be signed in displays. Next page, the header catches up and shows I am signed in.
If I go to the Handbook while the header is out of sync, I usually get a different language.
Another case: I sign in at LDSTech and wander around. Then I go to the lds.org home page. The page shows that I am NOT signed in and the menu does not allow me to access any options that require signing in.
Then, when I click on the sign in button, the header updates to signed in status with my name, and all the menu options are available. I did not have to go through the actual sign in page (probably because I was already signed in through LDSTech).
So I think it is a combination of the coordination of the header page and the actual web page, and whatever cookie or setting it is that tells the site that I am signed in.
Conversely, I can sign out of some locations accessed through lds.org and I will be signed out of all sites. On the other hand, I can sign out of some lds.org locations and I will still be able to go to other places and remain signed in. It would appear in this case that the individual page or area signed me out (because I cannot access that function any longer), but the cookie or setting is still in my browser or on my computer that lets other parts of lds.org think I am still signed in. The cookie or setting did not clear as it should have.
One last clue. It happens most often when the site is running slowly and I am hurrying along. The header display on the page may still be being built, and I click on through where I know the link will be without waiting for the display to actually put it there.
This seems to mean to me that the page is accepting calls and clicks and doing things but it is not yet fully loaded and does not yet handle those calls, clicks, or things properly. Whether that would point to a problem in the basic page code or the underlying routines or css file display calls that build links, I would not know.
I do know that in every case where I have received a foreign language version of a page, the URL that delivered it has been built to include a "lang=???" tag to match.
And if this is not helpful at all, I hope it is at least entertaining.