I've spent the last few months nursing a 325 back to health, not there yet but almost. I replaced the vanos seals and some vacuum rubbers and these made slight improvements to performance but more noticeable improvements to cold start lumpiness. The biggest improvement was fixing the disa valve. My car had your exact symptoms and was transformed after I sorted it. The flap on the disa wears on the shaft and becomes stuck. I bought both the vanos and disa repair kits from i6 automotive. Only takes a few minutes to get the disa out, couple of torx screws, t30 I think, and you can test by closing the flap and putting you finger over the little exhaust hole on the unit. It should flip to half closed position and then fully closed when you remove your finger. If it's worn then electrically it would be functioning but mechanically it's doing nothing so no codes.