If he sees your server, and can join, but gets returned to server list when trying to load into your server...something may be delaying his connection and DCS sometimes boots those that take too long to load in. In this case try with very light mission, something with a small file size, you can test it by simply making a small mission with two client airplanes on the mission editor and nothing else and see if he can join that mission.
Then you can try heavier missions.