Мой хрустальный шар подсказывает, что ошибка у Вас на строке
item.remove();
В таком случае, из текста ошибки не сложно догадаться, что
document.querySelector(`[data-key='${todo.id}']`);
- возвращает
null
. То есть в DOM нет такого элемента.
А происходит так потому что Вы в обработчике клика смотрите на родительский элемент кнопки, коим является форма, у которой нет data-key.
const item = event.target.parentElement.dataset.key; // undefined
А нужно смотреть выше на div.
что-то вроде:
const item = event.target.closest('[data-key]').dataset.key;
Профит.