While I've messed around with the formats a lot to reverse engineer them back in the day (btw let me know if you want any of that code or notes, if they are not floating around somewhere, though you seem to be on top of everything in this regard), I'm not sure of what the limits are for various things.
It might be worthwhile to figure out how to take a RAM dump of the game in progress to understand a bit better what's going on there. For example, I remember blockers use some space in RAM that overlaps with parts of the level RAM if the level is too large (or has vertical scrolling, not sure anymore), so levels break in similar ways like you outlined if they have blockers.
One thing I noticed about your style file is that it's just a little above 128 KB, while all the officially ones are smaller. Bit of a stab in the dark, but if it's directly loaded into RAM, maybe some of it gets overwritten or overwrites something else?
One a different note, I'm not sure how far you are with the editor tools already, but there is this generic map editor called Tiled which has plugin capabilities (in javascript). I wrote a
plugin for Kid Chameleon at some point, and so at some point I was contemplating adding L2 map editing functionality to it, which would probably just take a day or two. Then you get a really good user interface for free, and it also supports "tile stamps", which is exactly what L2 has encoded in its style files (and you can easily add additional custom ones), i.e. groups of tiles that you can just paste onto the map. Adding custom style support would probably be just a bit of extra work: if you have the tile/object images being processed by a tool into L2 format, you could probably produce some output that's convenient to process in Tiled. Let me know if you're interested and want to discuss more details.