This issue is present on pre 10.7.x versions but doesn't seem to affect anything until you upgrade to 10.7.x
If you have any code that updates the page object directly without adding a useVersioning=false parameter, then preside creates a new version for this page, but not a new version in the corresponding page-type.
e.g. you have code like this:
From 10.7.x the admin screen when editing a page, now seems to look at the version tables, so when the version numbers between page and a page-type are out of sync, some of the current values are not shown on the screen, and if the page is saved, then are lost.
Maybe when you update the page object, it should look at the page_type column, and then copy the current row of the page type object and change the version number to match the new one used in page?
We have a mysql stored procedure that can get these back in sync, it needs a little bit of amending to make it generic, and a change to handle many-to-many data, but it might be a useful maintenance tool to fix previous preside sites. let me know if you want it