Some superstitions that may be true from the testing me and several people did a couple nights ago trying to get a custom game working.
1) Failed to join game means the game room is dead. The host left, but the server's still showing the room. You can't join a room that no longer exists. In fact, if you were the host, you might even see your own room in the list sometimes.
2) Failed to join game means the host created a game room with the same name as a room that was 1). Change the names of your room.
3) The more people joining at once, the more likely nobody can join the room, because everyone has to make connections with everyone for you to enter the lobby. If you're on vent or in-game chat, it's best to have one person join after the other instead of all at the same time. Not as much of a problem with the kicking mechanism.
4) Check your ports. Ok you forwarded your ports, but use a tool and check it really is open, there are several around the forum. You may not be doing it right or there may be something else going on.
5) Even with open ports, if you have a crappy connection, e.g. someone's file-sharing on your connection, you may still not be able to join.