I've got the same problem w/ my wife's 97 Cavalier (too wierd) It give a code P0420 and if you clear it, it takes "about a week" to come back. I cleared it just before we drove from San Diego to Big Bear (about 350 miles round trip, on I15, high speed and low speed mountain runs, and some city driving) It runs beautiful, but the check engine light came back on just as we got home from the trip. Code P0420 again, cleared right now and waiting for it to come back on.
I ran a voltage test on the rear O2 and it was in specs but jumped around a lot, the Haynes manual said it should be pretty steady. Also we did find that the rear O2 sensor had come loose, and retightened it into it's hole.
Any ideas?