msgbox 0x8800F18 MSG_KEEPOPEN '"Hey whippersnapper!\nCome back her..."
= Hey whippersnapper!\nCome back here!
Try if that works.
I'd say that when you're not locking the player (making the player unable to move?) during the script, and use "release" anyhow, that will lead to an interrupt that forces the game to freeze.
If this thing is a triggered script like it would make sense for it to be, you should be using "trigger flags" (if such exist in FRLG or RSE) to prevent this script data from loading at all, which you have here done in parts by refering to bit 0x828.
What I meant that you might not want to use a checkbit at all, and by the specifics of the trigger events, define whether a script data is loaded when the player steps on them.
That way, the game won't start executing script data during the gameplay that does especially nothing (even though it doesn't do "anything", it may stop the player on the ground for a while and the player may notice the game "lagging").
But I might be wrong though, triggered scripts may be built in like that in these games, especially since you're not automatically "locked" to the script.