Hey, I tried to replicate your problem and found a possible solution, but using a UObjectLibrary instead, which works wonderfully with generated BPs.
I pretty much stole it from this thread : Loading Blueprints with ObjectLibrary - Programming & Scripting - Unreal Engine Forums
I did something like this and it works :
auto ItemLibrary = UObjectLibrary::CreateLibrary(AEnemy::StaticClass(), true, GIsEditor);
ItemLibrary->AddToRoot();
ItemLibrary->LoadBlueprintsFromPath(TEXT("/Game/Blueprints/Enemies"));
TArray<UBlueprintGeneratedClass *> ClassesArray;
ItemLibrary->GetObjects<UBlueprintGeneratedClass>(ClassesArray);
for (int32 i = 0; i < ClassesArray.Num(); ++i)
{
UBlueprintGeneratedClass * BlueprintClass = ClassesArray[i];
UE_LOG(LogTemp, Warning, TEXT("UBP generated %s"), *BlueprintClass->GetName());
AEnemy* NewEnemy = GetWorld()->SpawnActor<AEnemy>(BlueprintClass);
if (NewEnemy) {
UE_LOG(LogTemp, Warning, TEXT("Actor Spawned"));
}
}
Hope it helps.