BMW Questions? Ask a BMW Repair Expert for Answers.
as you've already replaced the solenoids and position sensors then I'd say there must be an issue with the cam pulley / VVT actuator itself
sadly swapping this is more involved as the engine front cover has to come off to replace the pulley and reset the cam timing, depending on the mileage on the car then you might want to also replace the timing chain while you're there
typically parts are about $250 - 400 but its about 5 hours labour to do the job so this will depend on the labour rate of the garage you choose as dealers are $150 - 180 per hour with an independent costing about 60% of this