Try to print out the TeamCharacters.Num() before you call return.
Something like this
if (GEngine) {
GEngine->AddOnScreenDebugMessage(-1, 20, FColor::Cyan, FString::Printf(TEXT("%i TeamCharacters"), TeamCharacters.Num()));
}
(You may need to do a development build to not strip out GEngine message access)
I’m guessing you might have less than 3 and your function is ending too abruptly.