I.
Почти наверняка вы выводите лог в консоль и смотрите эффект добавления класса "глазами" в разные моменты времени. Поставьте точку останова на момент вывод лога и смотрите структуру документа. Уверен, всё будет совпадать.
Скорее всего в момент вывода лога класс действительно висит на элементе, но потом какая-то неведомая фигня тут же снимает класс обратно, и вы это не ловите. Трассируйте.
II.
Вот это плохо:
function changeColor(elem){
let list = elem[0].classList;
if(list.length > 1){
elem.removeClass(list[1]);
Вы точно знаете, какой класс идёт в списке под номером 1? ClassList вам ничего не гарантирует. Вы же используете jQuery, так и убирайте конкретный класс, который хотите убрать.
III.
Функции addCircle должен передаваться аргумент elem, а в месте вызова в скобках ничего нет: addCircle().