I don't have the time to investigate algorithms for optimizing the number of teams played with, but I think this is probably the best way forward. However I am still worried that you will not be able to achieve practical schedules. As the 9 team scenario is quite small and symmetric, I did look at this in some detail, enumerating all possible schedules. So I can state with certainty that the best possible schedule, with no teams together 3 or 4 times is:
(. . .) (1 2 3) (4 5 6) (7 8 9)
(1 6 7) (. . .) (3 8 9) (2 4 5)
(2 5 8) (4 7 9) (. . .) (1 3 6)
(3 4 9) (5 6 8) (1 2 7) (. . .)
and that all together there are 216 variants like this. The pairwise properties are quite poor. Teams 1, 5 & 9 have only 4 different opponents and they are with each opponent twice. The remaining teams have 6 opponents, 4 of them once, and 2 twice.