Serra was the hardest gym leader for me too. I was stuck on her back in episode 9, and even though they said they slightly weakened her in episode 10 there was no difference that I could tell because she was still incredibly hard. I only managed to beat her in episode 10 because they fixed moxie. One thing I'd do is save even after you lose to her. The reason is because your Pokemon will gain exp from the few on her team that they do kill, which will help them level up and get better stats.
I've heard she's much easier if you have drought Ninetales, but if you don't have that she's almost impossible. You can get a Vulpix from the beauty salon if your lead Pokemon has high friendship. Train it up and get a fire stone to evlove and and you'll have Ninetales. Just make sure it had drought or try to breed for one that does. You can also get Macargo from the volcano area by Kiki's gym, it has double resistance to ice type moves. If you don't want to train up new Pokemon (I didn't either) you're going to be in for a long, difficult, rage filled battle.
This is what I eventually beat her with after a billion tries and pure dumb luck where she didn't get any critical hits, none of my attacks missed, and my quick claw activated multiple times.
Lv 50 Camerupt (lava plume, yawn, earthquake, flame burst) held quickclaw
Lv 49 Gyarados (aqua tail, ice fang, bite, dragon dance) lv 50 during battle
Lv 49 Alakazam (psychic, shadow ball, recover, calm mind)
Lv 47 Samurott (aqua tail, water pulse, revenge, slash) held mystic water
Lv 47 Emolga (acrobatics, spark, volt switch, shock wave)
Lv 43 Mawile (iron defense, faint attack, crunch, baton bass) lv 44 during battle
Gyarados received many moxies. Only gyarados, emolga (unused), and mawile (critical condition) were left alive.