If you can plug a code reader in with live data you should be able see what is going on. Fuel pressure, lambda outputs, IAC activity, EGR amongst others depending on the reader. Reading the information is very important, for example a lean mixture can be an air leak, a bad injector or low fuel pressure, miss firing plug or even a fault lambda sensor. A misfire will allow unburnt oxygen into the exhaust and the lambda will read this as a rich mixture so lean the mixture off.

The fuel pressure on these engines does fluctuate as the pump speed controls the pressure rather than a pressure regulator. Low fuel pressure as Nich has said can be caused by the pump separating but also by a faulty sensor on the fuel rail or even the fuel pump controller it self.

If the code is cleared does the same fault code come back?

Steve