画面からユーザオブジェクトの特定の項目を修正した時にトリガーが発火しないことがあるようです。これに該当するとApexでも処理できないかもしれません。
Updates to certain user fields do not fire a trigger on the User object
以下はRESTful APIでユーザ名を更新しようとしていますが、うまく行かなかったみたいです。
trigger UserTrigger on User (before update) {
for(User newUser : Trigger.new){
User oldUser = Trigger.oldMap.get(newUser.Id);
if (oldUser != null && oldUser.Email != newUser.Email){
newUser.Username = newUser.Email;
}
}
}