Человек вошёл под другой учёткой или вышел, а блок на странице всё ещё считает его вчерашней группой. После сброса кеша Битрикса всё встаёт на место. Метод $USER->GetUserGroupArray() тут ни при чём: он отдаёт текущие группы. Компонент читает то, что записал в кеш при прошлом хите.
Не ставьте проверку группы внутри кешируемой области «для всех». Либо выключите кеш у этого компонента, либо включите кеширование с учётом пользователя, либо считайте группу снаружи и передавайте в шаблон уже готовый флаг.
Пока условие живёт внутри общего кеша, любой следующий посетитель может увидеть чужую цену, чужое меню или чужую кнопку.
