Понятно почему не сохранялся код. Теги вырезаются методом strip_tags(), только разрешенные проходят, то есть используется метод "что не разрешено - то запрещено". Теги из вашего XML-а не были в списке разрешенных. Добавил. Потом механизм поменяем на принцип "что не запрещено - то разрешено".
Кстати, советую вообще XML-описание модели не использовать. Создаете таблицы в базе данных и генерите модель пакетом CMPGenerator. Гораздо рульней получается.
Да, модели у вас разные, но вы тогда пытаетесь совместить несовместимое. У вас разные объекты, но пытаетесь вы их наследовать от одного класса, еще и таблицы разные используете... Я бы все-таки создал общую таблицу со всеми уникальными полями и рулил свойством class_key различные типы объектов.