Hola de nuevo,
comentar que lo solucioné. Buscando y rebuscando entre Gigas de basura que tengo en el ordenador, encontré un ejemplo de un curso.
Consiste no mandar los parámetros de la forma anterior sino en hacer los siguiente:
//Creamos la conexión
Database dbFac = DatabaseFactory.CreateDatabase();
//Creamos el comando que ejecuta el procedimiento almacenado
DbCommand dbCmd = dbFac.GetStoredProcCommand("ModificarUsuarioPorCod igo");
//Le añadimos los parámetros que necesita el procedimiento almacenado
dbFac.AddInParameter(dbCmd, "@Codigo", DbType.String, UsuarioCreado.Codigo);
dbFac.AddInParameter(dbCmd, "@Nombre", DbType.String, UsuarioCreado.Nombre);
//Ejecutamos
mensajecodigo = Convert.ToInt32(dbFac.ExecuteScalar(dbCmd));
Pos ala, ahí lo dejamos pues por si ha alguien le viene bien.
Saludossss.