Maybe I can give a helpful hint. For the interdivision games, rather than treating each subleague as 5 divisions of 4 teams, split up each division and treat it as though there are 10 "half-divisions" of 2 teams.
Then you have an even number of "half-divisions" to allow for everybody in the league to have an interdivision matchup at the same time. Just make sure to exclude the divisional matchups from getting into those "half-divisions" matchups.
Here is an example of splitting each division into half-divisions "A" and "B"...
Code:
2A 1A 3A 1B 4A 2B 5A 3B 5B 4B
1A 3A 4A 2A 5A 1B 5B 2B 4B 3B
4A 1A 5A 3A 5B 2A 4B 1B 3B 2B
1A 5A 5B 4A 4B 3A 3B 2A 2B 1B
5B 1A 4B 5A 3B 4A 2B 3A 1B 2A
1A 4B 3B 5B 2B 5A 1B 4A 2A 3A
3B 1A 2B 4B 1B 5B 2A 5A 3A 4A
1A 2B 1B 3B 2A 4B 3A 5B 4A 5A
Each half-division matches up there once against each other half-division outside its division. (Maybe double-check my work to make sure)
The upper-left pod of "2A 1A" corresponds to four games since 1A encompasses teams 1 & 2 and 2A encompasses teams 5 & 6...
Code:
5 v 1 6 v 2
6 v 1 5 v 2