I think I may be able to answer to all 3 of your questions by pointing out the following: when you simulate a ladder system with MPS, you are actually ordering the sites in a one-dimensional way. So the site 1 of the MPS is site (x,y) = (1,1) of the ladder; site 2 of the MPS is site (x,y) = (1,2) of the ladder; site 3 is (x,y) = (2,1); site 4 is (x,y) = (2,2); etc. It helps to draw this out pictorially.
Then for example, to answer your question (3), if you figure out which bond of the MPS divides the ladder into the two halves you want, then you just compute the entanglement entropy across this bond of the MPS, using the approach described here:
https://itensor.github.io/ITensors.jl/stable/examples/MPSandMPO.html#Computing-the-Entanglement-Entropy-of-an-MPS
Similarly, for your question (1), you just make Trotter gates acting on pairs of sites of the MPS that correspond to the pairs of the ladder sites. So if you have an interaction acting between sites (1,2) and (2,2) of the ladder, as described above those are sites 2 and 4 of the MPS so you make a gate acting on sites 2 and 4. The apply
function provided by ITensor knows how to apply non-nearest-neighbor gates to an MPS for you so you don’t have to worry about that part.
Regarding the error (2) you got, it is because you were adding together two ITensors having different indices. That is not allowed (and it is not physically meaningful so you would not want it to be allowed). Based on your code example, I think you are confusing the idea of adding two ITensors with adding two many-body operators.
In many-body physics we often write things like S^z_3 S^z_4 + S^z_5 S^z_6 however this is fairly misleading notation. It is actually shorthand for
I_1 \otimes I_2 \otimes S^z_3 \otimes S^z_4 \otimes I_5 \otimes I_6 + \\
I_1 \otimes I_2 \otimes \otimes I_3 \otimes I_4 \otimes S^z_5 \otimes S^z_6
where now these are operators (tensors) acting on all the sites 1,2,…,6. If they were ITensors you could now add them successfully. But you can’t just take S^z_3 S^z_4 and S^z_5 S^z_6 and add them as ITensors. (Theoretically ITensor could put the identity operators in for you but this would only make sense in a physics context and ITensor is a general-purpose tensor library.)