Potrzebujesz parametru z kierunkiem ustawionym na ParameterDirection.ReturnValue
w kodzie, ale nie ma potrzeby dodawania dodatkowego parametru w SP. Wypróbuj to
SqlParameter returnParameter = cmd.Parameters.Add("RetVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int id = (int) returnParameter.Value;