Quite interesting. I'll do some reversing to see how you accomplished this.
There are 5 important patches:
1. The most obvious one in IW4SteamClient::OnLobbyCreated: patch the if-statement so that you get past the Steam Connect Failed message.
2. IWSteamClient::OnLobbyEntered: patch another if statement so that you don't get the connect fail when you find a lobby
3. Steam_Frame: this function is not needed and has to be patched so that you don't get kicked out of the lobby after a match ends
4. Probably most important: Steam_IsInValidLobby: Make it return true.
5. PartyHost_Frame: There is an if-statement almost at the beginning which compares Steam_GetSteamLobbyID() with partyData->steamLobbyID. This if-statement also has to be patched as it's always false.
And @Kid a, this is not what he meant and no, I don't use this.