Yeah, your friend suffers from overleveling his starter at the expense of his team and you from spreading the training five Pokemon instead of a core team of three.
We have beat her with a Lapras of us. To be fair, we had RNG and EV training, though the difference shouldn't be too big early on. You can catch one in the Union Cave at Lv20 (nature reset is optional, but recommended). It learns Ice Beam at Lv32, which is really useful, especially later on when you eventually reach that cheating bastard Lance.
When you are really cheap, Perish Song and Revive shenanigans will take out Kingra reliably, as long as Lapras survive one hit.
Another option is to raise your SDef via items or Amnesia, then your SAtk or Atk. Your friend is pretty much screwed and will have to grind a bit in order to have a legit chance against her.
Your Furret learns Amnesia at LV42, but at that rate you are better off with another Pokemon bacause Furret sucks in the long run. Forretress could setup SDef via drugs on Gyarados, but there is that Dragonair with Fire Blast which hurts it too much. Your Togechick may be the best for that.
If a bit grinding is not a problem you guys should catch yourselves a Lapras. A good alternative Pokemon besides Lapras is Quagsire (Lv36 Earthquake FTW, ), who incidentally also have access to Amnesia. Earthquake, Waterfall, Yawn and Amnesia are really good for a Pokemon that does not need HMs. It should be caught with Water Absorb and a nature that decreases either SAtk (Adamant, Relaxed) or speed (Brave, Impish). Interesting: The AI recognizes its typing, but not its ability, which makes Kingdra fire off Hydro Pump at an immune Quagsire, multiple times.
As for grinding: Trainer Rematches. We think that Fisherman at Route 42 has reasonable strong Pokemon after a few rematches. You can call him indefinitely as long as the time is right.
We don't know though if they level up pre E4.