Чтение прямо в структуры является злым - много программ C упали из-за различных порядков байтов, различных реализаций компилятора полей, упаковки, размера слова.......
Вы являетесь лучшими из сериализации и десериализации байта байтом. Используйте сборку в материале, если Вы хотите или просто привыкаете к BinaryReader.
Существует свойство TapPageContextMenu.
Чтобы привязать контекстное меню к регистру вкладок сверху, используйте:
DockContent.TabPageContextMenu
Это то, что вы искали?