М..да. Действительно помогло. Большое спасибо
Определил новый локальный макрос для наследника В #CurrentList и #CurrentVesion. Потом перекрыл методы pack() и unpack(). Там ничего нового нет, просто удалил super() и скопировал туда то, что и есть в основном классе А.
Очистил кэш и всё сработал

.
Теперь после решения проблемы тоже интересно что за проблема была. Раньше я же пробовал инкрементную компиляцию. Вижу что после выполнения классом В метода pack() из основного класса А всё-таки переменная a сохраняет значение. Только после этого, когда стек операций зашёл глубже в системные классы, а теряет присвоенное значение.