The most likely explanation is that you have shared private keys between multiple nodes, and are publishing from both of those nodes simultaneously. In this case, each node may be trying to spend the same "UTXOs" (unspent transaction outputs), since there is a short delay from when one node spends a UTXO, to when the other node sees that.
If this explains the problem, it can be mostly easily solved by ensuring that different nodes are publishing from different addresses. Alternatively you can use the createrawtransaction API to manually control which UTXOs are used in each transaction, and then each node can be instructed to only spend those UTXOs which belong to it and/or it created as change outputs from previous transactions. More about raw transactions here:
http://www.multichain.com/developers/raw-transactions/