Добрый день!
Когда пользователь изменяет код динамического Атрибута CategoryAttribute.code, то код  Значения динамического атрибута остается прежним CategoryAttributeValue.code. Такое поведение приводит к множественным Значениям динамических атрибутов (дублям) и к   некорректной их работе.
описание некорректной работы
Сценарий:
*предварительное условие - в приложение добавлены динамические атрибуты и их значения.
- Открыть экран редактирования динамического Атрибута и изменить код;
 - Сохранить изменения и применить (Кнопка применить изменения на списочном экране Категорий);
 - Отрыть окно редактирования сущности, для которой добавлен динамический атрибут и существует значение, и изменить его значение;
 
При этом в базу данных добавляется повторное Значение (связанное с тем же category_attr_id и той же entity_id), но с новым кодом.
Если упорядочить эти Значения по id и то, что новое будет после старого, то при отображении на экране редактирования сущности будет отображаться всегда старое Значение атрибута, а при попытке изменить, значение будет меняться в новом.
В некоторых случаях Значения продолжают множиться дальше.
Все это было обнаружено в мигрированных с CUBA проектов, где коды Атрибутов могли быть на кириллице, а скриптов миграции Значений и Атрибутов не предусмотрено.
обходное решение
Для себя мы реализовали такое решение. Оно не предотвращает от появления дублей, а просто при перезапуске приложения мигрирует коды Атрибутов и Значений, и корректно удаляет дубли оставляя последнее значение для атрибута, которое пытались установить.
@EventListener(ApplicationReadyEvent.class)
    public void migrateDynamicAttributes(){
        log.debug("Migration dynamic attributes started");
        systemAuthenticator.runWithSystem(() -> {
            //удаление повторных значений динамических атрибутов.
            this.deleteDuplicateCategoryAttributeValue();
            //миграция кодов динамических атрибутов.
            this.migrateCategoryAttribute();
            //миграция кодов значений динамических атрибутов.
            this.migrateCategoryAttributeValue();
            //очистить кэш
            dynAttrMetadata.reload();
        });
        log.info("Dynamic attributes migrated");
    }