Here's an idea that is close to fairness ....
It is based on categorizing teams according to their ACHIEVEMENT in the previous season
All league winners of same level must be divided equally on all league divisions in the next season
All runner up of same level should be distributed on all league divisions in the next season
Same goes to the fourth , fifth , six , seventh, and eighth position
Rotation among teams is advised to avoid seeing same teams competing in same league division each season which become boring
- Position 9 to 14 next season should be the teams who failed to promote this season ( they were one level above )