How do the holes move? How can I visualize the movement of holes, since it really isn't a "particle" or an "ion" per se?
The nuclei of the atoms are more or less locked into place in a crystal lattice.
Let us suppose that a hole moves from positively charged atom A to neutrally charged atom B in one physical "step". What is happening on a physics level is that an electron from neutrally charged atom B moves to A. This leaves B positively charged, and A becomes neutral.
How does this differ from a flow of free electrons?
The electrons that move when a hole moves are not "free electrons". They occupy a lower energy level (known as the valence band) than the "free electrons" which occupy a higher energy level (known as the conduction band). This may seem a rather academic point, but hopefully its significance will become more apparent in a moment.
When a free electron moves about in a semiconductor, it darts willy-nilly from location to another. The same electron moves about. On the other hand, when a hole moves about in a semiconductor, an electron jumps "backward" to fill the hole leaving a hole in the new location. Then a different electron from a different neutral atom leaves its home, to fill the hole, making its previous home a hole. Then a third electron leaves its home to fill the hole, leaving its prior home as a hole, and on and on.
So in the case of free electrons as carriers, one electron goes on a journey farther and farther from its original home. In the case of holes as carriers, it is many electrons, each making very small jumps, one after another, from one spot to another. Each of these individual electrons does not go far, but the hole goes on a journey farther and farther from its original home. If you could see individual electrons and atoms, electron current would look different from hole current. It would be like watching someone slide a scrabble tile over a board that was filled with scrabble tiles, vs having a board that was filled with scrabble tiles, except for one spot, and someone moving a tile at a time from a neighboring spot into the empty spot. I hope that helps to give you some intuition.