I've read through that link and others and found them generally inconclusive on either the problem or a solution. There may have been one buried but for those who are also struggling here is a simple solution:
CPDN does not update it's CPID (internal or external) to match other BOINC projects.
If you are just starting with BOINC then create your CPDN account first the others should then use the CPID from CPDN.
If, like me, you didn't (seti was my first) then it's a bit more complicated. For each machine you are using:
- Shutdown BOINC completely. I'm running as a service so this involved stopping the BOINC manager and stopping the Service (Control Panel->Admin Tools->Services).
- Open the "client_state.xml", found in the BOINC install directory, in any suitable editor.
- Locate the <cross_project_id> for the "climateprediction.net" project and copy the value.
- Locate the <cross_project_id> for any other participating projects and replace the value with the one you copied from CPDN.
- Save the file and restart BOINC. Update each project.
DO NOT copy the file, it contains other information specific to each machine!!! It can be a pain if you have lots of machines, but if you do it properly it works.
Finaly, a quick note on the displayed CPIDs: The value you copy will be shown as is on CPDN but Seti, Einstein and Protein Predictor (not sure about the others yet) will still show a different value, this is okay. If you want to check, "update" the project then recheck it's <cross_project_id> in the "client_state.xml" file.