Have you 'set xact_abort on' to allow the remote server to abort the transaction on error?