That would probably be the best route to do the transparent textboxes. One of the things diego and I discovered while doing my intro (he wants to use it for Emerald, and since I'm not doing a GSC remake he can use it) is the game's method to change the IO registers, which is pretty much all that your doing with those byte writes, since all of those addresses are in the 04000000 RAM area, and using the game's method garantees that the modifications won't be overwritten.
One thing that I should mention is that the "msgbox" command is a total lie, and I discovered this while making SEA. It actually consists of two commands: preparemsg or an equivalent like loadpointer, and callstd. What I would do is I would hack the callstd function at 0806A180, hack one of the 3 or so ldr's they have, do your thing, and then restore the registers back to normal so that it can continue.