Acho que não está faltando nada. Provavelmente é um procedimento armazenado interno que é chamado de dentro de uma transação (TRANCOUNT =1), inicia sua própria transação (TRANCOUNT =2) e depois a reverte. Bem, isso significa reverter, mas a reversão afeta todas as transações e não apenas a mais interna, então o procedimento atrapalha o fluxo de execução.
Uma maneira de encontrar o local depende das ferramentas/habilidades disponíveis. Uma maneira melhor é usar o SQL Profiler que mostra todos os comandos executados por um aplicativo no servidor. Descubra o procedimento armazenado mais externo e percorra seu código procurando por quaisquer outras chamadas de procedimento.