a bank 1 lean code could also be an intake vacuum leak or also possibly an injector seal leaking....just a couple more things to look for.....usually when an o2 goes bad it will throw a code for a lazy/stuck o2 (signal high/low or pinned)or something to that effect.....what would be helpfull is to get a look at the data stream to see how the o2 sensors are operating.....also while doing that......spray a little carb cleaner around the intake ports and injector seals to see if you get a change in engine rpm or a change in o2 sensor signal or both........hope this helps ya.....I have run into this before with a 5.4 expedition thought o2 was bad but after more diagnostics found the intake gasket on the drivers side to be leaking .....good luck...