Ok, before you go replaceing all the expensive parts, and i know this sound dumb but i used to be a BMW technician. When was the last time you replaced your spark plugs? or your plug wires? Check all your vacuum lines, this sound like it could be a simple fix, dont forget how simple our engines are, check those things and then post back on your findings and we can go from there.
I dont know how many times ive seen people start to throw parts at their car when all it need was some plug wires, or something simple.