GameModeBlueprint is overriding C++ GameMode DefaultPawn

Here is my setup. I have AMyGameGameMode class, which define some functions and DefaultPawn class, which is instantiated for current level. It is taking some variables form Engine Singleton to choose which blueprint use for current level - I am switching character blueprints this way.

Also I have GameModeBlueprint derived from my C++ class to store some configuration options editable form Unreal Editor.

This setup worked ok, before I added logic to seitch DefalutPawn based on singleton value. I’ve noticed that GameModeBlueprint is overriding my DefaultPawn value. Is it possible to prevent it from doing this?