I've actually done a lot of research on this topic.

When I posted before, I forgot it's not the urea that's the problem - it's not. It's the uric acid.
Here's information I provided in a thread in the behavior forum on removal of cat pee.
******************************
There is a strong, legitimate, and chemically important reason to use enzyme cleaners. Here's more detail on why an enzyme cleaner is so important, and home-made mixtures or other cleaners won't solve the problem long term (at least to a kitty's nose). The solution may work better than some enzyme cleaners like Nature's Miracle -
temporarily. But it works only as long as there isn't an issue with humidity. I will explain.
I have done a lot of research on this issue. Vinegar neutralizes the odor, and hydrogen peroxide is 30% more oxidizing than chlorine - but cat pee is composed of things that REQUIRE enzymes to break down the chemical bonds. Cat pee is composed of:
Urea
Urobilin/Urobilinogin
Uric Acid
Sodium
Other electrolytes
Creatinine
Pheremones
Bacteria - typically 5 different strains.
When cat urine dries, the urea gets broken down by the bacteria. This is what makes it smell like ammonia. As it decomposes further, it releases thiols that make the odor worse. (It is the thiols in skunk spray that make it SO difficult to remove the smell of skunk spray).
The urea and urobilin/urobilogin are not hard to clean. Urea is water soluble, and urobilin is basically the pigment that causes the color. A traditional household or carpet cleaner will deal with these. And this is why hydrogen peroxide and vinegar will appear to be effective at eliminating the problem.
The problem is the uric acid. Uric acid is insoluble and bonds tightly to whatever surface it touches, and the sodium in the urine compounds the problem.
The vinegar and hydrogen peroxide do not - are not chemically capable of - removing the uric acid. It temporarily makes the smell go away, because it does clean up everything else. But when exposed to humidity, the sodium causes the uric acid crystals to reform - and they start to release the smell again. Not always to the human nose, but the cats can smell it.
Because of the uric acid/sodium, cat pee has a half-life of six years. !!!!!!!
So the ONLY thing that will break down the uric acid to PERMANENTLY remove the smell is an enzyme cleaner.
The problem is that not all enzyme cleaners are equally effective. Good ones are expensive. Cheap ones will work - but need to be reapplied over and over (and probably end up costing as much as the expensive enzyme cleaners).
Having dealt with three different males blocking numerous times, and Spooky peeing outside of the box for months, we've used many solutions, cleaners, and enzyme cleaners. Nok Out works. I haven't used Anti-Icky poo, but I understand it is the "same class" of enzyme cleaner.
Of course ANY cleaner needs to be used properly. Unfortunately, the OP was not using the cleaner properly. "Spraying" doesn't work. DOUSING, POURING, and SOAKING are required.
*********************************
And as you need to clean the entire carpet, use the shampooer - just use the enzyme cleaner instead of carpet cleaner/water. Just don't use the heat. And the shampooer pulls the excess moisture up, right? And then you just leave it to dry? That should work! You may need to do it 2 or 3 times.
But once it's done and dried, you should be able to get away with spot-cleaning.
Once they're neutered, IF THERE IS NO SMELL OF CAT PEE to their noses, hopefully they'll stop spraying.

But if they smell cat pee outside of a litter box, that in and of itself encourages them to keep spraying, even after they're neutered. ...but the difference between the strength of the smell of "neutered" cat pee and "intact" cat pee is truly amazing.
