I am not one for throwing parts at a problem, but in this case I would replace the O2
A. It's cheap, and it can't hurt
B. If it is unable to detect small changes in fuel mix in the exhaust, the computer will not send less fuel to the injectors....which is what you want.
C. I can't figure out a way to trouble-shoot low mileage.
edit: I have not heard of any variation in ICM construction, but a good one might send much stronger signals than a bad one.
[This message has been edited by Gall757 (edited 04-10-2015).]