It turned out this was because the type of the column is a type defined in the project, rather than a system type. The designer uses a fully qualified assembly name for the type, including the version. The version comes from AssemblyInfo.cs and because asterisks have been used this changes each build.
The fix is to right-click on the .xsd file and select view code. Search for any type definitions using assembly qualified names and remove everything except the actual type name. You should now be able to open the file in the designer.