creo que la pregunta tiene más que ver con por qué
PreferenceManager.getDefaultSharedPreferences(this).getAll()
devuelve un mapa vacío / contradictorio que con cómo iterar sobre un mapa estándar de Java. el documento de Android no es muy claro sobre lo que está sucediendo aquí, pero básicamente parece ser la primera llamada a
PreferenceManager.setDefaultValues(this, R.xml.preferences,false)
- que es lo que se supone que debe llamar para inicializar las preferencias cuando inicia su aplicación - crea algún tipo de versión en caché de sus preferencias que hace que los cambios futuros en su archivo de preferencias xml se manejen de manera inconsistente, es decir, causando la falta de coincidencia descrito en su pregunta.
para restablecer esta "entidad almacenada en caché", siga estos pasos (que puede encontrar en el enlace anterior):
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().clear();
PreferenceManager.setDefaultValues(this, R.xml.preferences, true);