The oxygen sensors are a DIY but tougher than spark plugs because you are beneath the car working in some pretty tight quarters. I have not done mine yet on either e46, but If you get OEM sensors, I think the leads are different lengths so you don't cross them up. In any event, be sure that you plug each sensor lead in to its correct plug or your will really not like yourself. Best to do them one at a time.
Use ramps or a hoist to lift your car. We don't want to loose any forum participants.
That loss in mileage is dramatic. Makes me think that the car may be running open-loop (i.e. "limp home" mode) and not even using the oxygen sensors. Is the check engine light on? If so, perhaps something did not get plugged in properly after the recent work.
Did you clean your throttle body? None of us warned you that cleaning the throttle body on a drive-by-wire system has to be done very carefully. If you bugger up the calibration, you have to take it to the dealer or to a really well equipped shop to get it recalibrated. If that happened, it should set a code.