Очень странный способ клонировать select'ы - сохранить настройки плагина клонируемых элементов, деактивировать плагин на клонируемых элементах, клонировать элементы, инициализировать плагин у клонов и повторно у оригиналов, обновить настройки. Можно сделать попроще: в самом начале сделать клон элементов, и потом уже клонировать его; инициализацию плагина вынести в отдельную функцию, которая будет принимать набор элементов.
Странный способ получать новые значения id - единица в качестве начального значения и постфиксный инкремент. В результате последовательность идентификаторов получается такая: 1, 2, 3,... Элементы с 1 и 2 уже есть. Начальным значением должно быть максимальное существующее значение плюс единица. Или просто максимум, но инкремент тогда префиксный.
const $row = $('.b-items').clone();
let ID = +$row.find('select').last().attr('id').split('-').pop();
function selectize($el) {
$el.selectize({
allowEmptyOption: true,
create: true,
});
}
selectize($('select'));
$('.btn-clone').on('click', function() {
selectize($row
.clone()
.insertBefore(this)
.find('select')
.attr('id', () => `select-${++ID}`)
);
});