In terms of resistances, Water is resisted by Grass, Dragon, and Water. So to double up on water resistance, one would have:
Dragon, Water: Palkia, Kingdra. Palkia doesn’t have a great charged move, and Kingdra might not have high enough stats to be competitive at this level.
Grass, Water: Ludicolo. No good fast charged move, but Razor leaf will shred Gyarados.
Dragon, Grass: Alolan Exeggutor, ideally with bullet seed or Dragon Tail, and Seed Bomb, to get the charged attacks off faster.
I also like the idea of using A-Golem, charging up on the Scyther (double weak to rock) with Rock Throw , and greeting Gyarados (double weak to Electric) with a Wild Charge, which should mostly (if not completely) take care of him. Of course, one also risks that Waterfall could really hurt A-Golem, so it becomes about having Wild charge ready to go and firing as the grunt is throwing Gyarados into the fray. I suppose one could do something similar with Arcanine, using Fire Fang (edit) and Wild Charge; one gets single resistance to water and Scyther is only singly weak to Fire.
Let me know if I missed any meta-relevant options.