First, are you certain that everything DCC controlled in you layout has a different address than the decoder in this engine.
You are certain? Good.
Maybe the decoder is bad. One experiment to help isolate the source of the problem would be to change the decoder address. Verify the engine responds to the new address and not to the old one. Does the engine still misbehave when others are running? If not, maybe the problem was not in the decoder.
Now program another engine to the same address the previously misbehaving one had. Does *that* engine now misbehave when you are running others?
You are certain? Good.
Maybe the decoder is bad. One experiment to help isolate the source of the problem would be to change the decoder address. Verify the engine responds to the new address and not to the old one. Does the engine still misbehave when others are running? If not, maybe the problem was not in the decoder.
Now program another engine to the same address the previously misbehaving one had. Does *that* engine now misbehave when you are running others?