Why don't my tracking markers stay in position?
I found the solution myself.
For some reason, the frame numbers of my video file didn't stay in synch with the frame numbers of the track markers: when I would scroll to frame n in the timeline, it would sometimes show frame n+1 of the video, making it look like the marker had shifted.
I solved the issue by converting the video to separate image files before importing it in Blender.