index() без проверки
Если элемента нет, index() вызовет ValueError. Сначала проверяйте value in list.
set там, где нужен порядок появления
set удобен для уникальности, но для сохранения порядка нужен отдельный список seen.
Удаление из списка прямым циклом
При del transactions[i] индексы сдвигаются. Используйте обратный range.
Путаница задачи про ящики с точной оптимизацией
Жадный алгоритм прост и обычно достаточен в практикуме, но не является универсальным доказательством минимума.
Изменение кортежа вместо списка внутри него
Нельзя заменить employees[0], но можно изменить список tasks, лежащий внутри кортежа.