Você precisa de um parâmetro com Direction definido como
ParameterDirection.ReturnValue
no código, mas não há necessidade de adicionar um parâmetro extra no SP. Tente isso SqlParameter returnParameter = cmd.Parameters.Add("RetVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int id = (int) returnParameter.Value;