It’s untested, but
outOverlappingActors->RemoveAll([itemTag](AActor *RemovalCandidate) {
ABaseGameplayTagActor *TagActor = Cast<ABaseGameplayTagActor>(RemovalCandidate);
return TagActor->HasMatchingGameplayTag(itemTag);
});
should do it.