The language is not ticked. If the page’s language is not enabled on the Languages tab, the switcher cannot show it as current. Tick it.
Different codes. Your translation plugin may use a code the switcher maps to another language, for example a custom language. Check that each language in your translation plugin matches one of the 116 languages.
A cached page. A page cache may serve a copy saved for another language. Make sure your cache stores each language’s URL separately (it does by default for directory, domain and ?lang= URLs).