How are you currently going about battling them? Which Pokémon gives you the most trouble?
One of the better ideas is to focus on taking out one team first; personally I'd say it's easiest if you first deal with ZEL's team before taking on Taka's. Trying to battle both at the same time can get you in annoying situations - but if necessary, get some attacks in on him too, particularly if Chatot is on the field. That bugger can hurt you.
I've recreated your team* in Debug and fought the battle without held items and EVs, and it actually went pretty well! The most useful pokemon were Monferno, Pikachu and Roselia, but Herdier and Pidgeotto got their moments too.
Pikachu is ideal to paralyze everything you can, and to get rid of Chatot. Parahax saves lives, and if you get a double team in, awesome! Monferno will take care of Glaceon, Umbreon and Exeggcute. Keep it alive for Tangrowth too. Herdier disposes of Espeon. Roselia doesn't do a lot offensively, but besides Chatot and Espeon there also isn't really anything that hurts it, so it's nice to have on the field any time you know you need items or a switch-in.
(*levelled Pidgeotto to 30 because why not?)
I'd recommend putting a sixth mon on your team. Even if not as a battler, then at least as filler that you can switch into to get a free heal or two on a different party member. (But really, having a sixth battler is ideal.)
Your potions will come in handy against Tangrowth, I kept Monferno on the field with Roselia and just used Roselia's turns to heal Monferno. (Tho I let it die a turn or so after Taka used his potion because I got lazy. Pidgeotto still finished the job.)