First of all make sure all your axis couplers are tight and there is not slop or end play. But it appears from the picture that it is the max-deviation setting.
Here is a link for background reading on this setting:
Here is a link where it is reported that this setting is resetting itself on occasion:
He does not say what firmware he is on but it used to be that when you changed this setting it stays changed until reboot at which time it would go back to default. If 1.6.4. is changing it on occasion without a reboot it is something that should be brought up to support.
What I would suggest is take a picture of what the max-deviation setting is when its running good. Then take another picture of what it is when you notice its suddenly gone rougher. Then send them both to support.
Maybe a good way of keeping you going now is to add a G64 P___ to the preamble of your Gcode files. From the manual:
37. G64 Path Blending
G64 <P- <Q->>
P - motion blending tolerance
Q - naive cam tolerance
G64 - best possible speed. Without P means to keep the best speed possible, no matter how far away from the programmed point you end up.
G64 P- - Blend between best speed and deviation tolerance
G64 P- blending with tolerance. It is a way to fine tune your system for best compromise between speed and accuracy. The P- tolerance means that the actual path will be no more than P- away from the programmed endpoint. The velocity will be reduced if needed to maintain the path. If you set Q to a non-zero value it turns on the Naive CAM Detector: when there are a series of linear XYZ feed moves at the same feed rate that are less than Q- away from being collinear, they are collapsed into a single linear move. On G2/G3 moves in the G17 (XY) plane when the maximum deviation of an arc from a straight line is less than the G64 P- tolerance the arc is broken into two lines (from start of arc to midpoint, and from midpoint to end). those lines are then subject to the naive cam algorithm for lines. Thus, line-arc, arc-arc, and arc-line cases as well as line-line benefit from the Naive CAM Detector. This improves contouring performance by simplifying the path. It is OK to program for the mode that is already active. See also the Trajectory Control section for more information on these modes. If Q is not specified then it will have the same behavior as before and use the value of P-. Set Q to zero to disable the Naive CAM Detector.
G64 P- Example Line
G64 P0.015 (set path following to be within 0.015 of the actual path)
It is a good idea to include a path control specification in the preamble of each G-code file.