Ну ещё бы.
У Вас переменная str_start объявляется в $(document).ready(), то есть сразу после загрузки страницы. Соответственно, принимает она значение, изначально установленное в value у #text-input (те самые Ваши "один,три"), и... больше не переопределяется. Поэтому, как бы вы не тыркали чекбоксы, при вводе текста в #text-input-cityes в начало #text-input всё равно будет подставлено изначальное значение, которое хранится в str_start.
Решением будет либо удалить переменную str_start и использовать вместо неё $text.val(), либо объявить переменную str_start сразу после объявления $text и переопределять её в $box.on("click"), после $text.val(values.join(","));.
P.S.: JSFiddle упал. :)