My dad had a good suggestion for how they should generate match schedules. Just generate matrices (size [6] by [total number of matches] filled with numbers 1 to number of teams) that are optimized for number of unique opponents and unique allies, but meet a reasonable rotation rate constraint*. Make these matrices for all possible numbers of teams at a regional (24-100 or so).
Now these optimized matrices can be used at every event. Just randomly assign each team a number 1 to number of teams and drop into the corresponding spots in the matrix.
These optimized matrices will take time to generate, but that is a one time cost for the foreseeable future since the same matrices can be reused. It doesn't seem difficult to write an algorithm to generate these matrices, since it is similar to the classic
8 Queens puzzle.
* When I say rotation rate, I mean the number of a the number of matches until the same team has to go again. Expected rotation rate is (number of teams)/6. I thing 50% of expected rotation should be the minimum constraint of any subset of matches