How do I not leave scratches with the 220?
Excuse the double negative, but you don't not leave scratches with sandpaper of any grit. The whole point of sanding is to make scratches. If you're sanding between coats, you might do some scuff sanding to make scratches so that there's more surface area for the next coat to grab onto.
If you're sanding something smooth it, working from coarse to fine grit lets you remove large scratches (or other surface imperfections) by making many smaller scratches, and then replacing those with even smaller scratches, etc.
And so then having to revert to 120, 180, 220 again ect. I see everything saying just lightly sand before going on to the next coat but I am always getting scratches.
Again, the point of sanding between coats is to make the surface rough enough that the next coat will adhere better. You shouldn't need to "revert" to larger grit to remove any scratches made by the 220, and the finish will fill in the scratches from the 220. If you do go back to larger grits, you'll likely remove more of the first coat of finish than you probably want to.
Am I not waiting long enough for it to cure?
I don't know, because you haven't told us how long you're waiting, or what the surface looks and feels like when you start sanding, or what type of polyurethane you're applying.
In my experience, for either water-based or oil-based polyurethane, the surface should feel dry to the touch before you proceed to the next step. Water-based polyurethane dries faster than oil-based. Check the directions for the product you're using to find out how long to wait between coats (should be at least a few hours), and pay attention to temperature and humidity recommendations. If you continue to have trouble, make sure that your product is fresh (old finishes can take longer to cure, or may not fully cure at all), and try increasing the waiting time. Also, you generally shouldn't apply more than two coats in a single day.