I finally adopted the script of sluicebox, so, you can get it from Github. I tested the original and his and the result is the same.
As I said, in a vanilla game, only compiling 200.scr as a patch and using it, this problem happens. So, there is something different in the resulting compiled code in 200.scr.
As 200.scr is a "Region", that is used inside a room, maybe the compiler "forgets" or it does not do something (like calling an offset) between the region and the own script. But who knows, I have not checked the source code of SC. I think you guys are more experienced than me with that code.
Normally, when I try to change things in a script and I do my own tool, try to compare the result with the original code. If there is any difference, I know where is the issue (more or less). I talk about tools I've done to change bitmaps (for translation) with its own structure. Of course, I can understand a compiler/decompiler is a bit more complex to reach the same result. But well, we can always compare the codes (at least in assembler we should see the differences).
PD:
The witch has also a strange property:

That observeBlocks is unknown for me, apart, the Cage block is only a defined class, without props and with only the init method without code.
PD2: Maybe there is some type of issue with regions. I tried to modify also X/Y pos of portraits of 220.scr (boatRegion), and the compiled file crashes the game also. This happens when get by the roc, got the amulet and hawk saves me. Just when doing the room change, it crashes. (Mmmm... maybe the compiler does not addresses correctly this regions?)