So this was because you are loading an Instances_1 layer from room0 (where it is at depth 100) into rm_test, which has an Instances_1 layer at depth 500000, thus causing them to be added to that existing layer. In other words, if you need the added layer to be at a specific depth (that's inconsistent with target room), you would have to name it differently in the to-be-imported room.

I'm not actually sure what's the right way to handle this - if I let GMRoomPack create layer(s) with the same names as existing layers in the target room (but at different depths), you could get any of the same-named ones when asking for a layer by name, which would make a far bigger mess.

I understand the issue however I feel like since Game Maker (by default) names all layers the same, I think the "correct" way to handle this would be to create multiple layers with the same name at different layers. (Maybe if this is not possible I would even go as far as to have a prefix or suffix after the layer name (e.g.: _roomname or _depthvalue). This would be far more convenient than to rename all the layers. I feel like it's not "good" game design to access the layers by name anyways. Far more often you want to have different depth values. Who renames their "Instances" layer in every room for different depth?