не пытайтесь присвоить значение вашему столбцу внутри операторов CASE WHEN, поскольку вы уже это делаете.
СЛУЧАЙ КОГДА оценивается в значение, которое удовлетворяет условию.
попробуйте этот код
UPDATE payments SET
total = :total,
paid = (CASE WHEN paid > :new THEN :new ELSE paid END),
due = (CASE WHEN paid < :new THEN (:new - paid) ELSE due END)
WHERE id = :id
Я удалил назначения для платных и подлежащих оплате столбцов внутри описания дела.