Function when called crashes the editor and game

It seems you missed out some null check.

CurrentActor is safe because for loop itself guarded it once from de-reference with invalid index.
Casting on CurrentActor is also safe because casting on nullptr will get nullptr.

However, CharacterToLaunch may fail because not all AActors are ACharacters. In which case some of it would be nullptr. Then attempt to call a function that belongs to ACharacters from non-ACharacters, will crash for sure.

Let me know if this fixed your issue with this:

if(CharacterToLaunch != nullptr)
{
    CharacterToLaunch->LaunchCharacter( FVector(0,0, LaunchPower), true, true);
}
else
{
    UE_Log(LogTemp, Warning, TEXT("Cast failed"));
}