Normally a '!' implies a destructive operation in Scheme. You've not stated clearly that you want a destructive implementation. I'll give you both, sort of. First the non-destructive version, simply:
(define (vector-append! vect . vects)
(list->vector (apply append (map vector->list (cons vect vects)))))
Now for the mutable one, you'll need your own vector abstraction because Scheme vectors are immutable in length. Don't let this distract you; if you need it you need it.
(define (my-vector . values)
(cons 'MY-VECTOR (list->vector values)))
(define my-vector-values cdr) ; private
(define (my-vector-ref vect index)
(vector-ref (my-vector-values vect) index))
(define (my-vector-append! vect . vects)
(set-cdr! vect (apply vector-append! (map my-vector-values (cons vect vects)))))
and then some helpers for your new abstraction:
(define (list->my-vector list)
(cons 'MY-VECTOR (list->vector list)))
(define (vector->my-vector vector)
(cons 'MY-VECTOR vector) ; maybe
;; etc