Mike,I hope the following helps.
I think your airmass is working but it's out of range. On the diagnostic machine, can u ask the mechanic to switch mode to operating parameters to check, monitor the following parameters:
1) Air mass flowrate , at idle and when throttle is snap open fast. Your numbers should jump very high from idle to high load. ( maybe 30kg/h jumps to 320kg/h or something like that) See how the maf flowrates values vary with the accelerator being varied. I would suspcet this is the no 1 problem
Did you try and drive with the MAF unplugged? better than when plugged in or car stumbles?
2) oxygen sensor is out of range as well. look at the AFR at idle for the car. should be around 14.5 +-0.2. try unplugging each and see what happens. this may be #2 problem, but less possible
Basically u may have some sensor in your car that is not in the work range anymore,but still functions. You have cleared trouble codes and cleared adaptations and the problem comes back a few days later, correct?
The following is referenced from BMW:
The ‘Check Engine’ lamp is illuminated.
FC 227 – Mixture deviation, cylinder 1-3 and/or
FC 228 – Mixture deviation cylinder 4-6
Remedy:
Check the correct Air Mass Meter is installed. If the wrong one is installed then it needs to be replaced as well as the Suction Silencer. The rubber boot may not need replacing as it has a rubber ‘downsizing’ ring which is used for installing the smaller Air Mass Meter on other models. Remove the inner rubber ring from the rubber boot in order to install the larger Air Mass Meter.
If the correct air mass meter is installed then check the adaptation values located in the DME diagnostic status section. These values can provide a further insight into what has made the fault set.
After repairs are made relating to an adaptation related fault, the adaptation values should be cleared. This will allow the vehicle to driven under various load conditions and readapted. If the adaptation values are rechecked an indication of the success of the repair can be obtained.
Multiplicative mixture adaptation (Part Load) Vehicle under load
If the value is greater than 6% there may be an unmeterd air leak and not enough fuel is reaching the system, or an erroneous signal from the air mass meter. Then the oxygen sensor will measure a lean signal, which will cause the DME to compensate for the problem by trying to make the mixture rich.
If the value is less than -7% there could be an air restriction, erroneous signal from the air mass meter, or too much fuel in the system. The oxygen sensor signal will then measure a rich signal which causes the DME to compensate for the problem by making the mixture lean.
Additive mixture adaptation (Idle) Vehicle idle
If the value is greater than 0.2 ms then there is an unmeterd air leak where not enough fuel is being supplied to the system or an erroneous signal from the air mass meter. The oxygen sensor signal measures a lean signal which causes the DME to compensate and make the mixture too rich.
If the value is less than -0.2ms then there is an air restriction, and too much fuel is being supplied to the system or an erroneous signal from the air mass meter. The oxygen sensor signal measures a rich signal which causes the DME to compensate for the problem by making the mixture too lean.
Once a certain threshold (ms) value is exceeded the system can no longer offset the problem and a fault is logged.