Когда клик по container, то на второй раз, несколько раз вызывается onmousedown, первый раз на событие mousedown на color-picker-line-container , второй раз на событие на "color-picker-line-picker", одно в другом, соответственно несколько раз добавляется listener mousemove, а удаляется только один.
На
https://jsfiddle.net/ это может не очень наглядно
.
Ещё плохая ситуация когда уводишь курсор с элемента по которому щелкнул и начал перемещение., наверное, надо также обрабатывать onmouseleave.
Вот так более-менее работает
https://jsfiddle.net/n8b3rsza/ .
Думаю, создавать и удалять события лучше один раз вместе с элементом. Т.е. лучше, как-бы, либо удалять и создавать каждый раз все затронутые элементы, либо какую глобальную переменную использовать как флаг(который показывает надо перемещать picker или нет).