Тебе точно стоит проверить, не происходит ли асинхронных задержек в колбеке. Бывает, что данные не успевают обновиться. Можешь попробовать промисы или async/await. Или просто удостоверься, что элементы точно добавлены в массив до вызова refreshTotalPrice.
Похоже, проблема может быть в том, что ваш колбек работает как-то асинхронно. Даже если он выполняется быстро, небольшая задержка может сбить баланс. Попробуйте использовать async/await, чтобы дождаться окончания колбека перед вызовом refreshTotalPrice. Или проверьте, что массив selectedItems всегда актуален перед добавлением новых айтомов. Ещё можно добавить проверку на существование item и его свойства price, чтобы избежать ошибок.
Вполне возможно, что item не успевает добавиться в selectedItems до вызова refreshTotalPrice. Попробуй сделать так, чтобы колбек и остальные действия ждали добавления. Например: