The LanguageManager in Smart Localization does not persist between scenes in Unity by default. The original reason why we didn't have the DontDestroyOnLoad flag automatically set in the beginning was that we think that this is a decision best made by the developer.
The "don't destroy on load" flag is very easy to set, but it's not as easy to revert. To do that, you basically need to delete the object.
Anyway, We created a convenience method for you to set this flag so that it works correctly with our system.
Call LanguageManager.SetDontDestroyOnLoad() somewhere in your code base to set the flag. Preferably when your application is starting up.
This will make the localization system keep its settings and not reset for every new scene you load.