Necesita un parámetro con Dirección establecida en ParameterDirection.ReturnValue
en el código pero no es necesario agregar un parámetro adicional en SP. Prueba esto
SqlParameter returnParameter = cmd.Parameters.Add("RetVal", SqlDbType.Int);
returnParameter.Direction = ParameterDirection.ReturnValue;
cmd.ExecuteNonQuery();
int id = (int) returnParameter.Value;