E' piu' corretto usare la funzione SCOPE_IDENTITY(), rispetto a @@IDENTITY, perchè riduce il suo campo d'azione al batch in cui è eseguita.
Detto questo, non mi è chiaro se il secondo insert che fai va a buon fine. Cioè, riesci a impostare il valore nella variabile?
In ogni caso, invece di fare una unica sp che fa due inserimenti ne farei una per ogni singola operazione. La prima sp invece di valorizzare un parametro, fai in modo che ritorni il valore della funzione SCOPE_IDENTITY()
es.
create sp......
as
..
insert ....
SELECT SCOPE_IDENTITY()

se hai bisogno di eseguire il tutto in una transazione puoi utilizzare un sp che richiama le due precedenti all'interno di una transazione.