I imagine the audio buffer as an endless train passing by a station window from left to right. What you see through the window, from inside the station, at any time is what’s in the buffer. Pressing Freeze is like stopping the train. Or, to be precise: stopping the carriages that are in front of the window, and diverting the rest of the train to a different track (audio keeps coming through, it just bypasses the frozen buffer).
When you unfreeze, the moving train is connected to the carriages in the window again, so they start moving as they are gradually pushed aside and replaced by the new carriages coming in from the left. That means that until the whole “old” buffer is pushed out of sight to the right, you will see carriages from different parts of the train together in the same window. If you quickly press Freeze again at that point, you’ll catch different parts of the song in the buffer.
Position only sets the place in the buffer from which grains are generated, not the punch-in place for recording (new carriages always come in from the left side, not somewhere in the middle).
The audio quality setting determines the length of the buffer, yes. It goes from 1 second (high quality stereo, like a small but clean window) to 8 seconds (lower quality mono, like a big but slightly grimy window).
But of course, if you unfreeze and then freeze again three seconds later, you’ll only capture three seconds of new audio. If the buffer is larger than that, it will still contain some of its older content.