That's because it checks if the same faction is in the group in one of the source files that I forgot about. I've edited this before but forgot which file the check was in. I'm looking now and I'm remembering bits of it.
In Group.cpp line 1794 comment or remove these lines:
Code:
if (member->GetTeam() != team)
return ERR_BATTLEGROUND_JOIN_TIMED_OUT;
I made cross faction battlegrounds and guild vs guild before and it works perfectly, it just has been awhile since I've looked into these files.