Так вы же не привязываете входные значения вот они и не подставляются. Вот так все работает.
<input type="text" class="form-control" @input="onInput(index, $event)" :value="guests[index]">
А в чем проблема с v-model? Почему не через него?
Произошло это потому, что vue минимизирует изменения в DOM, а вы никак не указали, что вам нужно именно это поле. Решения 2: либо как я выше указал, задавать значение для поля, либо использовать уникальные ключи