Je pense que la question a plus à voir avec le pourquoi.
PreferenceManager.getDefaultSharedPreferences(this).getAll()
renvoie une carte vide/contradictoire qu'avec la façon d'itérer sur une carte standard en Java. Document Android n'est pas très clair sur ce qui se passe ici, mais en gros, il semble que le tout premier appel à
PreferenceManager.setDefaultValues(this, R.xml.preferences,false)
-- qui est ce que vous êtes censé appeler pour initialiser les préférences lorsque vous démarrez votre application -- crée une sorte de version en cache de vos préférences qui fait que les modifications futures de votre fichier de préférences xml sont traitées de manière incohérente, c'est-à-dire qu'elles provoquent le décalage que vous avez décrit dans votre question.
pour réinitialiser cette "entité en cache", suivez ces étapes (que vous pouvez en quelque sorte trouver à partir du lien ci-dessus) :
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().clear();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);