TSoftClassPtr in DeveloperSettings class isn't being properly set until the blueprint it points to is opened.

I have a problem with TSoftClassPtr in my settings object. It is set in project settings to reference a blueprint class inheriting from some cpp class. It seems to only work if that blueprint has been opened in editor before launching the game. Otherwise it seems to be null. After opening that blueprint I can keep launching the game in editor and it keeps working - until I close the editor. After which it will stop working until I open the blueprint again. I think this is a bug, but I wanted to make sure I am not missing something. And also ask for some support as to how to fix it.
I am using UE 5.3.2.
Below are some more details.

I am copying some parts of the UI from the Lyra project and I wanted to make the DefaultUIPolicyClass selectable in project settings. I’ve made a settings class like so:

UCLASS(config = Game, defaultconfig, meta = (DisplayName = "Game UI Manager Subsystem Settings"))
class MLSPROTOTYPE_API UGameUIManagerSubsystemSettings : public UDeveloperSettings
{
	GENERATED_BODY()

public:
	UPROPERTY(config, EditAnywhere)
	TSoftClassPtr<UGameUIPolicy> DefaultUIPolicyClass;
};

then in my UTestGameUIManagerSubsystem which inherits from UGameUIManagerSubsystem I am referencing that DefaultUIPolicyClass like so:

void UTestGameUIManagerSubsystem::Initialize(FSubsystemCollectionBase& Collection)
{
	Super::Initialize(Collection);

	if (!GetCurrentUIPolicy())
	{
		const UGameUIManagerSubsystemSettings* Settings = GetDefault<UGameUIManagerSubsystemSettings>();
		if (Settings && Settings->DefaultUIPolicyClass)
		{
			TSubclassOf<UGameUIPolicy> PolicyClass = Settings->DefaultUIPolicyClass.LoadSynchronous();
			SwitchToPolicy(NewObject<UGameUIPolicy>(this, PolicyClass));
		}
	}

	TickHandle = FTSTicker::GetCoreTicker().AddTicker(FTickerDelegate::CreateUObject(this, &UTestGameUIManagerSubsystem::Tick), 0.0f);
}

In my project settings I set the DefaultUIPolicyClass to a blueprint that inherits from CommonGame.GameUIPolicy. It seemed to work fine at first, but after relaunching the project it stopped working. After some debugging it seems that “Settings->DefaultUIPolicyClass” is null until I open the UIPolicy blueprint. After that it keeps working until I close and reopen the editor (the blueprint has to be opened each time I open/close the editor, otherwise the pointer to that blueprint’s class is null). The asset path seems to be correct, though.

Is this a bug or am I missing something? Is there some way to circmuvent it (ie. force the UIPolicy BP to re-compile itself automatically when the project gets opened)?