Oil or even a vacuum leak can cause the 02s to set a code. Just replacing the 02s without correcting the cause isn't going to cure the problem. As soonas they're replaced and you fire the engine, the codes will return because the CAUSE hasn't been corrcted.
So first you should investigate and correct - if necessary - any leak and then address the 02s if the codes continue to be set. If you do have a oil leak that's getting into the intake track chances are the 02s have been contaminated to the point that they'd need replacement.
A vacuum leak, however, may not effect the 02s long term, so sealing the vacuum leak may be all that's needed. Once the vacuum leak is sealed, the 02 codes should go away.
You can attach a vacuum gauge to the intake and see if the reading holds steady or if it jumps or is low. There are several ways to find a vacuum leak. From sparying carb cleaner around all the suspected locations, spraying an un-lit propane torch, etc.
In the past I've just use me water hose and flooded the intake where it mates to the heads. You'd have to be careful doing that though in order not to get water into the Opti or flood any of the sensors.
Probably the best way is to attach a scanner and check all the readings to see if any of them are out of range. Of course, you'd have to know how to interpret the readings.
If you post all the codes you're receiving probably someone can interpret them and point you in the right direction. The more detailed the information you give us the more likely we'll be able to pin-point the cause. One thing I definitely DO NOT recommend is just throwing parts at the problem; in the hope that one of them will cure the problem.
Hope this helps.
Jake