Got a couple that's easy to try and won't mess up the game at all(i guess, never heard of any harm by them at least)and is really fun/useful:
Get a shiny Ditto:
Trade the shiny Gyarados to R/B/Y and teach it mimic. Trade it back to G/S/C and delete ALL the moves except from mimic. Then, trade it back to R/B/Y and fight a Ditto with it, use mimic and transform, and catch it(not sure if mimic and transform is NEEDED, but better be safe, huh?), then trade the Ditto to G/S/C(and the Gyarados if you want to), and the Ditto will be blue ^^
ALL moves on every pokemon that can learn mimic.
Okay, takes this out of my head, will update if I said something wrong.
Take for example a Gyarados that knows mimic(like, use the shiny Ditto-glitch first, and then use this one) and get into a link battle with a foe who has a Smeargle that knows sketch AND the move that you wants to learn Gyara(for example Aeroblast, a Gyarados with swords dance, EQ, aeroblast and substitute would be NICE). Use sketch, make Gyara mimic sketch, then make Smeargle use Aeroblast(or whatever you wants it to learn), and when Gyara sketches it, you will have a Gyarados with Aeroblast/whatever you wanted. Works with everyone that learns mimic(altso by TM in RBY) and Ditto(transform-*sketch-sketch-*the move you wants ditto to know(*=smeargle).
I haven't tested them by myself yet, but I am on the "meet ditto"-part on the blue Ditto-glitch, and will test out the "all moves"-glitch as fast as possible, and it's many people that says they have tried them both and that they works(people that I never has seen lie on forums).