^^ im going to add a kinda out there observation...
On another BMW engine, we would see air leaks causing rich conditons and fouling of cats.
The DME would see a small air leak, ramp up fuel...but when the engine then moved to higher RPMs the amount of air leaking in was less, in terms of a % of airflow- the DME would back off. After a long time of this sub-criitical abuse, the excess fuel would load the cats with hydrocarbons, you would get cat codes. The air leaks and the fuel trims never reached the level that triggered a DTC code...but the trims were always moving around.
It was a wierd thing.
I also personally had a sluggish VANOS solenoid that caused rich running but only at some RPM bands. After a while, id get a cat code. Id get tell-tale speckles at the rear bumper due to unburned HCs. Finally overhauled the vanos solenoids, afetr 2 years of chasing that beatch... perfect. Interstingly it only impacted the one bank. (whereas most intake air leaks will not be an 'only one bank issue...)
|