All of this talk of matching guilds based on size, activity, etc. won't fix the problem, It'll only fix the problem for certain groups and create new problems for others.
Right now Diamond league is simply too top heavy, and the other leagues similarily.
I still think that the best way to fix GBG is to make it so that only the top two teams stay in Diamond league (with 1st gaining 25% of league spread of points up to max points, second losing 25% of league spread of points though that makes it possible that second will drop to Platinum league instead of staying in Diamond), everyone else gets dropped down one full league amount of points into Platinum league (so if they were at the maxed out in Diamond they would be at a comparable point in Platinum, maybe 1 point short of max Platinum points maybe 25% below, and if they were in the middle of Diamond points they would drop to middle of Platinum points, etc).
Similar thing with Platinum... Top team gains points towards moving up 25% of league spread of points, second gets zero points, third loses 25% of league spread of points, and the rest get bumped down one full league amount of points into Gold. Rinse and repeat for Silver and Gold leagues. That makes it so that it takes two wins in a league to advance to the next league from the middle of the league's point spread, no way to advance upwards without winning a battlefield.