This was supposed to be a private message, but it's full. This will fix your killing PC Glitches and might remove the need for the Cherrygrove workaround you implemented if you lose to the rival the first time without going to Cherrygrove's PC first.
-----------
Hi zel,
I don't know if you remember me, but it doesn't really matter does it? :P
Anyway, I just posted a thread in the Document and Tutorials section on how to fix the killing PC glitch. It hasn't been approved yet, so I can't give you the link right now... EDIT: HERE Well anyway, it'll help you to nail those Killing PCs in, I think, Cherrygrove, Lavender, and Route whatever it was.
Also, I know when you lose to your rival for the first time you end up back in Newbark, and you created a workaround that warped you back to Cherrygrove. Well, this knowledge might be able to fix this too.
This probably won't make any sense until you read the short thread I posted, but I'm gonna give it a go anyway.
If you're willing to change Cherrygrove back to a default PC, you should be able to use sethealingplace 0x1 in its levelscript and force the player back there, even if they haven't visited that PC yet. But to do that, you'd have to remove the sethealingplace bit of the player's room's levelscript. I haven't tested it, but it should make it so instead of returning home when you lose on Route 29, Cherrygrove, and... the other Routes near there without going to a Pokemon Center first, it will, in theory, force you back to Cherrygrove and heal you normally, avoiding that somewhat ugly workaround you had to implement.
Now, removing the sethealingplace bit from the player's room's levelscript makes it so there is no healing place set at the beginning at the game. Since I haven't tested it, the player might not do what I described in the previous paragraph and appear in Cherrygrove. Instead it may crash because nothing's been set. I don't know if the game forces the player to whatever's set as 0x1 when nothing's been set or not. Again, you'll have to test it yourself on a new game of ShinyGold. Just apply the changes I describe and die immediately after getting your Pokemon on Route 29. It will either freeze or put you in Cherrygrove.
Anyway, I hope I've helped you at least fix the killing PC glitches in SG. The Cherrygrove workaround fix just occurred to me after posting the thread, and I'd thought I'd share it with you and see if you could make it work.
I'll see you around the Community,
Deokishisu