If an user chooses a format different than the system language in the settings, two things seems to happen:
1- A pam_environment file is created in the home folder
2- FormatsLocale= is written in the /var/lib/AccountsService/users/user_name file.
If an user deletes pam_environment, the language settings still shows that the formats selected is right and the set language button is greyed out, but the clock, measurements, papersize, etc... is wrong because pam_environment isn't present anymore.
The language menu should check for the existence of both files when reporting the currently selected user (not system) language.