Okay, I see a lot of ideas flying around, but I'd like to pitch in my two cents as the leader of an odd type.
On the surface, flying is pretty OP looking due to an array of ubers and offensive presence, yes? Well actually, I struggle with more Pokemon than the average gym.
While I do like the suggestion of a counter list, being allowed to bring two to mine would be absolutely devastating. I'm giving them a list of things I can't handle!
One of my biggest problems is Cloyster. It's got STAB priority and skill link for icicle spear and rock blast. Pair that with shell smash and a focus sash and please tell me how I can beat it. Now say I manage to kill the stupid thing. They now have yet another Pokemon I struggle with. Let's say it's Greninja or Tyranitar. I'm done. There's no way to take them down after my team has been crippled.
My point is that while that could work for some gyms (say the electric due to limiting the number of grounds), it's never going to work for others.
There's flaws with limiting the number of Pokemon with an advantage. Like, look at the team I battled Miles with last night. I had a M-Gallade, Ferro, and Gengar (Clef, Rotom, and Lando are my others). Against the normal gym, that would be deemed counter for one supereffective type, one resist, and one immunity...but it's my normal team. Some types have way too many weaknesses/resists to do a specific number for.
I'd also like to point out that as the flying leader, I have literally one Pokemon that isn't a dual type, so my mons are very prone to countering easily especially when stealth rock is taken into consideration, so I really do want to fix the problems. It's just that some solutions only work for some of the types.
I rather like the idea of the leader being able to choose whether or not the person deserves the badge. We could set up a council of sorts to judge battle videos if a challenger is rejected the badge but feels s/he deserves it.
Sorry for the long post, guys!