The smell keeps coming back because enzyme cleaner alone probably didn't reach deep enough into the cushioning where urine soaked through the fabric. Try pulling off cushions and spraying the exposed foam and frame with an enzymatic cleaner, let it sit for 24+ hours, then vacuum or blot thoroughly - this targets where the smell is actually living. If that doesn't work, sprinkling baking soda on damp cushions overnight and vacuuming it up can help neutralize lingering odor. The humidity thing makes sense since urine salts reactivate when moisture returns, so keeping the couch dry and occasionally airing it out will help prevent it from coming back.