The match making seems to work properly and is based on your guild's league points for GbG. Till now I've never ended in a match up that didn't seem right or felt wrong. I'm solo gold and had a big win at top gold, my every 5-6 seasons big nasty fight, past season. I knew I would end high in plat league and that's exactly what happened, bumped to plat league and I'm now against guilds with a variation of ~30-40 league points. So in my opinion this works well and has always been like this.
What also works naturally well is that there can be quite a diverse mix in a battleground depending on your position in a certain league at some point in time (depending on your league points). Again about my past season big win at top gold league rating I was against 2 plat guilds, 1 silver guild (ouch Zippit), 2 half gold/plat's and the rest gold guilds.
Unfortunately what's actually going on is that in Diamond league you have the opposite effect as in copper league and that's because there's nothing above diamond league. You can't avoid having plat's popping up in diamond and you can't have a pure season after season the 1 000 diamonds against only 1 000 diamonds as only a few diamond guilds will stay at 1 000 and lower or mid diamond guilds still want to stay in diamond league.
It's not perfect, can't please everyone but I've seen much worse than what we have in GbG as matchmaking in other games, much worse.