un UPDATE con il GROUP BY e' la prima volta che la vedo e spero sia pure l'ultima. Piuttosto dovresti estrarre gli id dei vari record ed usare quelli per puntare a dei record specifici da aggiornare.
ma non mi fiderei troppo di dati estratti con la select ed il group by. Ti rende la prima riga (random per definizione) che risponde alla condizione, id incluso. Condizione peraltro complessa che potrebbe anche determinare l'unicita' del result set stesso.
Quindi l'UPDATE dovra' limitarsi ad aggiornare i dati richiesti basandosi solo sulla condizione where e senza id se altri record rispondono al where verranno tutti aggiornati allo stesso modo. Si potrebbe usare il LIMIT 1 nell'UPDATE ma quale sara' il primo record trovato? .