I have identified the problem. however not the solution.
Whenever i use a device with 3xxx in its name, then devices after that in the stack will fail. So when i used both el3314 and el3202, the device with the highest slave address(furthest to the right in EK1100) will fail
Or if i have a stack like: EL2004, EL3004, EL1004, EL3314, EL3202, then every device after EL3004 will fail.
Using wireshark i can see that data from the failing device are not sent.
In linuxcnc, failing devices show weird values often depending on the first terminal in the stack. I suspect Ethercat, expecting x bytes from the failing device(s), will wrap-around reading from the next datagram resulting in mysterious values.
I cannot figure out the root of the problem, perhaps the drivers compromise each other.
any insight is appreciated
Edit: attached drivers for 3xxx devices