This looks like a bug, but here's a workaround:
As you open the file don't try to playback the scene or move a frame within the timeline. Instead switch to the Motion Tracking preset and in the the movieclip editor select your video clip and press P to cache or Prefetch the video clip.
On the bottom of the window you'll see a purple line indicating the prefetched frames.
Prefetching will load all of the frames into RAM and that will help you keep the trackers in place. The issue has to do with the video being in a delivery format (mts) in which the video is encoded using I, B, and P frames, which means that the information of a particular frame is not complete in every frame but is reconstructed using information from some preceding and subsequent frames. It's been optimized for playback using prediction vectors and crap like that. The sort story is that Blender needs to read the whole stream to have each frame land in the right place. For a more technical explanation read this
NOTE by default blender will only use 1GB of RAM to cache frames. You can change that number depending on the amount of memory on your system. To do that open the User prefences (CtrlAltU) and on the System tab you'll see the options for the prefetch and cache limits.
The other options you have to prevent this issue is to convert your MTS video file into an image sequence or a video file that uses intra-frame compression codec.
As I said this is likely a bug. You can report it.