Take the back off and heat it with a heat gun or hair dryer. Just remember to keep it moving. Might be worth checking the seal on the headlight cover. Either replace the whole thing (£15 from BMW) or possibly a smear of grease on it to reseal.
As for the control unit I'd say the usual searches, eBay, dealers........