That means there are less than 3 players and the function ends prematurely.
Move
if (GEngine) GEngine->AddOnScreenDebugMessage(-1, 20, FColor::Cyan, FString::Printf(TEXT("%i TeamCharacters"), TeamCharacters.Num()));
Above if(TeamCharacters.Num() < 3){}
to see how many TeamCharacters there are before you enter the if statement.