Problems to be solved by a quantum computer can be programmed by
creating a set of qubit input registers and connecting them to a set
of output registers through an assemblage of quantum logic gates that
define the problem to be solved or computation to be done.
This is certainly one way to do it, based on the quantum circuit model. There are various alternatives.
When the computation is started the qubits traverse the logic gates
according to the laws of quantum mechanics, not giving the same result
measurement every time, but after a sufficient number of cases have
been run and measured (no trivial matter) the answer is contained in
the measurements
Depending on the physical implementation, the qubits themselves may not actually move. They might, or they might sit in the same place and have the quantum gates applied to them.
If you measured the qubits in the middle of a computation, they would give different (intermediate) answers every time. But, you must not measure qubits in the middle (unless the algorithm specifically tells you to), as that destroys the quantumness of the computation.
but after a sufficient number of cases have been run and measured (no trivial matter) the answer is contained in the measurements
This is not usually the case. The key to designing good quantum algorithms is that, at the end of the computation, you get the right answer with high probability. In examples such as Grover's algorithm, the probability of error is vanishingly small. So, in practice, you only have to run the algorithm a small number of times, often only once.
In practice, a considerable amount of classical programming must be
done to set the input qubits in such a way that the quantum machine
that is configured as required for the problem can process the qubits
using their quantum mechanical properties. A typical problem requires
that considerable classical manipulation of the output is required
also.
You could think about it like that, and that is certainly the way that Shor's algorithm is typically described, for example, using some classical post-processing such as the continued fractions algorithm. Perhaps a better way of thinking about it is that the entire problem could be solved on a quantum computer, specified by a single, unified, algorithm. However, because quantum computers are trickier to build and run than classical computers, if some parts of the algorithm can be performed on a classical computer, it's easier to do so, and we only run the bit that needs quantum processing on the quantum computer.