Compile error when adding USaveGame class

UE5.3.2. My WIP project compiles and packages well. When I add a USaveGame class, it stops compiling, giving me error, related to UUserWidget:

CompilerResultsLog: Error: C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\UMG\Public\Blueprint\UserWidget.h(1567) : error C2665: ‘UUserWidget::CreateWidgetInstance’: no overloaded function could convert all the argument types.

and:
UserWidget.h(1560): Error C2338 : static_assert failed: ‘The given OwningObject is not of a supported type for use with CreateWidget.’

Again, without this USaveGame class object, it compiles, packages and works fine.

How can these be related?
Thank you

Ok, I found the spot where it stumbles. I create a custom widget as:

UOrderWidget* OrderRecord = CreateWidget(PlayerController, OrderWidgetClass);

I changed the OwningObject from PlayerController to GetWorld() and it began compiling. Now it’s:

UOrderWidget* OrderRecord = CreateWidget(GetWorld(), OrderWidgetClass);

Still can’t grasp why?

Also, what are in this sense differences between includes:
include “UI/Factory/SetProductionWidget.h” and
include “Blueprint/UserWidget.h” ?