Как вы создаёте объект $b[^b::create[]], если у вас нет конструктора @create[] в классе «b»?
Повторил ваш код — не работает.
Подумал, что может быть названия переменных пересекаются с названием классов и в этом проблема, но тогда бы выдал exception скорее всего. Так и не достучался до поля родителя.