I f you are getting that low of milage than you need to take it in and have the technician look at the fuel trims. This will tell you if the vehicle is running rich and trying to pull fuel from the cell. Here is how the block learn works. You have a 3d fuel map in the calibration that has values for ms injector pulse time. Based on feedback from the o2 sensors this value can be made positive or negative. Positive means it is adding fuel to that particular cell in the fuel map and the oppisite if the numbers are neg. It should be able to keep the fueling normal unless the trim values max out. You may also want to to take a look at the baro reading and coolant temp reaging. Not the one on your dash, but internal to the pcm. If the coolant temp is wacked it could be reading off of a coolant comp map that would be adding fuel for a really cold situation. Just a few things to try.