I don't have an algorithm to solve this problem. But just thinking about the problem, wouldn't it be better to have a multiple of 7 weeks for a session. In 7 weeks, there are 14 byes and it should be possible to arrange that everyone has exactly one bye - and so everyone has the same number of games. Also, it's not clear how many sets there are on a court. If 4 players meet there are 3 different games they can play:
(A B vs C D)
(A C vs B D)
(A D vs B C)
If you only want to play 2 of these 3 sets, then that makes the scheduling much harder I think.