So I have got it to work. Make sure you put the the SPF and the DKIM record in the TXT section (DNS settings WIx) - NOT in the custom sections where it says SPF. So add the two MX records in MX and three to the TXT section. That worked for me.
Now after saying all this I think it's utterly useless!! at least in my case. All that happens is that your iCloud email address now receives your Domain email BUT when you go to send an email, at least if your using an app like Spark/Airmail etc it comes from you iCloud domain and NOT your Custom Domain. You can do this on iCloud webpage and it will come from your domain email but I never use the web to send email. I even tried adding a new iCloud account using my domain but it wouldn't have it - at least in Spark so frankly its pretty useless for us small business/freelancers. Maybe I will move to Tutanota or something but sadly Apple failed big time on this. Shame.