This would be the problem I described in
an earlier post.Let's look at this another way.
The level you want to change is at 0xc498? Okay. Let's say you inserted two bytes before there. That changes where the level's data starts to 0xc49A. But the pointers to the level still point to 0xc498. This means when the game tries to load that level, it's using an offset starting with data you added which could be totally invalid bytes for the subroutine that loads the level. This could crash it or lead to garbage data.
This same thing also affects ALL OF THE DATA after where you inserted the two bytes. You have to update every single pointer that points to an address after the bytes you inserted.
I realize the example was adding bytes before the level not after. I showed what happens here to show you what's going on with known data. But by inserting two (or four or whatever) bytes ANYWHERE, you're destroying everything after it.
I'm admittedly not to familiar with FDS, but there's yet another reason you can't just insert bytes into a rom. Typically, roms are of a fixed size and things are expected to be at a certain byte offset. By inserting bytes into... say the NES version of Super Mario Bros., not only have you made the rom too large, you've also pushed the vectors (addresses stored at the end of the rom that tell the game the address to start at when resetting among other things) meaning the game will likely start at totally garbage data. I can't imagine it'd be much different with an FDS game.
Rom hackers typically find free space in the rom when they want to add stuff. This level, after adding those structures, would be larger than it was before so you can't just put it back where it was. You either have to move the data immediately afterwards to free space in the rom (and update the pointers to it, of course), or find a way to optimize the space the level before it takes up. (Unlikely in Super Mario Bros. Everything is quite compact). Alternatively, you hack it to a different cartridge type that has more space so you can have a field day in the new bank(s).
Now let's go onto why this was probably not difficult for the All Stars programmers. They had source code. Assuming there was enough free space, all they would have had to do is add the data to make those blocks appear. All the pointers afterwards would be updated automatically when the game was assembled. This doesn't happen when you add things in a rom hack, because there's no easy way to tell what's an address, what's data, and what's code. This is the same reason why making a disassembly is difficult, even for really clever programs.
I'm not raining on your parade because I'm a spoilsport. This stuff is actually very difficult, and can't be solved with a total lack of assembly/rom layout/programming knowledge.