I see no sizeof(unsigned int) in this arithmetic (and that makes perfect sense to me).  Why, then, do you repeatedly (below) include a sizeof(unsigned int) in your calculations of write-size of PersistentClassInfo objects ?