BT support told me it was an apple problem so I contacted apple.
Apple said the problem is the BT / yahoo server is returning the user name as user.name%40btinternet.com rather than email@example.com.
After saving the details on my phone despite the verification error I can see this by looking in accounts and passwords at the caldav account. The @ in the account is replaced with %40. If you then select the '>' to look at the account details it shows as per Stephanie's instructions ie how I typed it in.
Does anyone know if BT looks at problems like this raised on here?
By the way Apple said they have a useful tool for looking up your mail settings.