As far as I know, manually editing a context's designer.cs file doesn't work. Any event (such as moving an entity on the context's designer) causes designer.cs to re-generate wiping out your manual edits.
So, code with dependencies on the attached [DataType(DataType.PhoneNumber)] will break as soon as the context is modified. I tested this behavior using a LINQ to SQL context. Is there a way to prevent manual edits from being wiped out?