Ok I looked at bank 2 and I see what's going on. When it loads, it reads the pointers for the maps, then map by map it scans across, adding a message for each 00 byte it reads, until it hits the pointer for the next map, or in the case of the last map, the end of the data. When it saves, it writes each map's text and computes the pointers appropriately, but when it gets to the end of the dialogue of the last map, it just stops writing, leaving whatever data was past the (new) end of the text there.
The result of this is, if you deleted a bunch of text without adding new text, it will stop writing short of where the old ending point was, leaving whatever was already there still there. So next time it reads the last map, it thinks there are a TON of messages for the last map (I bet that the 45 or whatever messages will scroll down if you try; it's probably a lot more) because it just goes to the end of the data.
The other result of this is that if you just fill up the end with FFs manually, it will get to its fixed ending point and think that all those FFs are one giant message. FF4kster's bank 2 space limit is not set to quite the very end of that segment (901FE not 901FF) so it thinks it doesn't have room to write that no matter how big it is. I think that's why when you backspaced a bunch of them it worked. In fact, I bet that if you had manually put in a 00 somewhere short of the end (say, 901FB or before) it would have worked as well.
In any case, the last world is a glitch world, and as far as I know we don't yet have a way to turn glitch worlds normal, so, does it really matter whether it has 1 message or a billion? If the issue is purely cosmetic/asthetic then I'm not inclined to mess with it. If there is some functional issue, however, I do have an idea for a stop-gap solution:
Ideally what I would like to have is an extra pointer at the end to indicate the end of the dialogue for the last map. However, there's only enough room in that pointer table for the maps themselves. What I could do, however, is hijack the last two bytes of the data and use it for said pointer. In other words, the room for bank 2 text data would be shrunk by two bytes, which would now be used (by FF4kster only, not by the game) to indicate where the actual "end of data" location is. This may have the side effect of the game interpreting these pointer bytes as part of the last message of the last map, but the last map is a glitch world (absent miscellaneous shenanigans), and even if you do somehow turn it into a real map, it should be easy to avoid showing that particular message if it's a problem.
I'm not sure what your plan is exactly for dealing with the end of Bank 2 - I'm thinking the easiest thing to do would have the editor fill up the end with FFs, and know that any amount of FFs at the end can be removed to make room for what comes before.
At any rate, while you're looking at Bank 2, a request: do you think it would be possible to add the ability to insert and delete messages from a map? It seems like the amount of messages within a given map is limited only by the amount of space devoted to that map (by the pointers, which are already moveable), and the only thing needed to define a new message is a 00 at the end of the previous one.
You know what, I honestly thought I had already implemented that, but I just tried it and you're right, you can't currently add or delete messages from Bank 2! This one I will definitely get on right away! Just be careful to make sure your event triggers and NPCs aren't referencing message indexes that no longer exist or who knows how the game will behave...