Major observation! I sadly cannot remember the exact events anymore but..
In Pokémon Gold I was playing around with Quick Attack while asleep (a glitch related to this exists in Red/Blue/Yellow).
For that glitch in R/B/Y, you have Quick Attack as your last used move, and then get put to sleep on the same turn. While you are asleep (and cannot select a move), you will always move first even if Quick Attack is changed to no longer be one of your attacks.
Additionally, if the foe was put to sleep on the same turn as the foe using Quick Attack, they will always move first while asleep regardless of whether the non priority move was removed via memory viewer.
In Generation II, it turns out you can select your moves while asleep and the glitch does not apply there. If you choose a move other than Quick Attack while asleep the priority won't be kept. For the other side, a sleeping foe that knows Quick Attack and a non-priority move may either act first or not act first (possibly if they tried to use a non priority attack).
Something happened regardless. I did some things and flew to Goldenrod City, I think(?) I replaced all of my moves on memory viewer with Quick Attack either then, or before flying away. I went into the grass and encountered a Drowzee and sent out a level 3 Rattata. I probably used Quick Attack and my Pokémon got put to sleep. Drowzee ended up defeating me, possibly with one critical hit Pound. Then I either ran away without changing Pokémon or switching, or switched to Ho-Oh and ran, and the next encounter in Goldenrod City appeared to be a ????? FF.
Unfortunately I could not do anything in battle because it turned the battle into a link battle. Any action resulted in a (possibly) infinite "Waiting..." message.
However, if this happens to be a glitch (and not an accidental result of me using memory viewer) that works on Crystal in the same way, you may be able to avoiding the "Waiting..." message and capture ????? (FF). ????? (FF)'s Pokédex entry made the game hang in Crystal, but it seems like its Pokédex entry may actually be taken from the memory (see http://bulbapedia.bulbagarden.net/wiki/Five_question_marks#255
and the many 9s. These 9s did not appear for me). There may be a means of registering it without a freeze. If you make the text start with an 08, is text code arbitrary code execution a possibility too?
I was messing around with D149-D14C earlier. Datacrystal calls this enemy move 1-4, but this actually updates when you view one of your Pokémon's own moves from the summary.