Чтобы перед изменением пароля проверить, правильно ли введен старый пароль, можно разлогинить пользователя, и попробовать его залогинить с тем паролем, который он ввел как старый. Если залогинить удалось, функцией update() меняем пароль и авторизируем заново с помощью $USER->Authorize($USER->GetID());. Если залогинить не удалось, логиним пользователя с помощью хеша пароля (вероятно, его нужно будет предварительно сохранить в сессии перед тем, как вы будете разлогинивать пользователя).