Условно говоря, на сайте-доноре берется заголовок. Его длина составляет 150 символов. На вашем сайте в базу может влезть только 100 символов. В этом случае заголовок обрезается со 150 до 100 символов. В итоге при проверке ищутся заголовки длиной 150 символов, а там только длиной 100 символов, поэтому их и не находит. И как следствие пишутся в базу новые записи.
Понял. Но нет, заголовки у донора и в базе одинаковой длины.
Добавлено спустя 29 минут
Сделал проверку, как это делает система:
$this->cms_core->db->isFieldUnique('con_content', 'title', $title);
всё равно добавляются с одинаковым названием(
Добавлено спустя 20 минут
Заметил что в названиях, которые не проходят проверку на уникальность, есть символ "&". Думаю проблема в этом. Но в БД в записи тоже есть эти символы.
Добавлено спустя 3 минуты
Когда запускаешь функцию isFieldUnique в ручную, то названия находятся!
Добавлено спустя 23 минуты
Нашел решение проблемы. Обработал название функцией htmlspecialchars_decode