Whenever you're editing a compiled script (one that's already in the ROM), its best to repoint
everything that makes it up. You've used a dynamic pointer for the @main segment of your script, but all of the branches and text are still using static pointers. Static pointers don't care what's already there in the ROM, they just overwrite it, causing errors if your script isn't spaced out properly.
Here's a version of your script with fully dynamic pointers. You will need to do this in the future as well.
Just keep using dynamic pointers rather than static ones and you should be fine. For some reason, the script kept losing the contents of [buffer1] whenever I tried testing this so I moved the bufferitem command around and added a new one towards the end. I also repaired what I thought the @CantPushText string would be, because it was broken in both of your scripts.
And yes, there is a lot of frustration in hacking, but that also goes for making a game in any medium :P