Я успешно использовал библиотеку с открытым исходным кодом nserializer для аналогичной ситуации - а именно для сериализации произвольных объектов .Net, используемых для реализации игрового AI в F #, включая «сопрограммы» в стиле Unity, реализованные через выходы в последовательностях ( которые внутренне скомпилированы в несколько классов, приблизительно представляющих возможные продолжения).
Он должен делать то, что вы хотите, хотя он использует XML, а не двоичный формат - учитывая сжатие и распаковку, если размер оказывается проблемой.