Изучите справку по
splice, это во-первых.
Во вторых, когда вы удаляете строки из изначального массива data, data.length у вас меняется, вообще логика кода мне плохо понятна изучать его желания нет.
Почему сразу в таблице просто не записывать нужные строки в массив для вставки в корзину, а после этого удалить строку целиком при помощи Sheet.deleteRow(), без перезаписывания и вставки массива данных?
Подсказка - удалять строки на листе надо снизу вверх.