Rob, I think the following schedule will work:
(17 13 14) ( 2 15 11) ( 8 19 9) (18 7 10) ( 5 4 20) ( 1 12 21) ( 6 16 3)
(18 14 15) ( 3 13 12) ( 9 20 7) (16 8 11) ( 6 5 21) ( 2 10 19) ( 4 17 1)
(16 15 13) ( 1 14 10) ( 7 21 8) (17 9 12) ( 4 6 19) ( 3 11 20) ( 5 18 2)
( 3 2 17) ( 4 18 7) (10 13 15) (16 21 9) (19 11 12) ( 5 6 14) ( 1 8 20)
( 1 3 18) ( 5 16 8) (11 14 13) (17 19 7) (20 12 10) ( 6 4 15) ( 2 9 21)
( 2 1 16) ( 6 17 9) (12 15 14) (18 20 8) (21 10 11) ( 4 5 13) ( 3 7 19)
( 9 11 4) (19 14 20) ( 1 16 10) ( 6 12 2) ( 8 13 3) (18 21 17) (15 7 5)
( 7 12 5) (20 15 21) ( 2 17 11) ( 4 10 3) ( 9 14 1) (16 19 18) (13 8 6)
( 8 10 6) (21 13 19) ( 3 18 12) ( 5 11 1) ( 7 15 2) (17 20 16) (14 9 4)
( 6 20 19) ( 9 10 5) ( 2 16 4) (21 3 14) ( 8 15 17) ( 7 13 1) (12 11 18)
( 4 21 20) ( 7 11 6) ( 3 17 5) (19 1 15) ( 9 13 18) ( 8 14 2) (10 12 16)
( 5 19 21) ( 8 12 4) ( 1 18 6) (20 2 13) ( 7 14 16) ( 9 15 3) (11 10 17)
Each team plays 4 of the other teams twice, and all the other 16 teams exactly once. Teams are assigned to the 7 columns above either once or twice.