I have to say it's very hard for me to follow all this.
For most standard collections such as std::vector<T> the serialization
library takes care of the version of T. There are only a few exceptions to
shis - such as vector<std::string> etc. So everything should "just work"