Necesitamos detalles sobre lo que no funciona, pero creo que solo necesitas usar:
UPDATE TablePeople
SET missingdate = (SELECT MAX(te.replacementDate)
FROM TABLEEVENT te
WHERE te.people_id = TablePeople.id)
WHERE missingdate IS NULL
Notas
- MAX se usa para devolver la fecha de reemplazo más reciente, por temor al riesgo de obtener múltiples valores de la subconsulta
- Si no hay un registro de respaldo en TABLEEVENT, devolverá nulo para que no haya cambios