I had this issue on my 2010 323i msport, whistling sound randomly when i drive, turn the oil cap and its gone. Turned out to be the pcv valve, which mine was built into the tappet cover, so i ended up replacing the tappet cover(plastic.)
hope this helps
aaah saw the reply now, yup, tappet cover
aaah saw the reply now, yup, tappet cover