Scaling keeps resetting after set keyframe in Blender action
my first 3d animation professor used to answer every question with the same initial answer... "Did you apply Loc/Scale?" not applying it to your mesh can result in the stranges things... 

Also, I fail to see what is changed? your settings for scale are the same on frames 3 and 5. It looks like you put whatever you keyframed is on frame 0, and frames 1 - 20 all have the same data... since your animation is set to run from frame 1 to 20 I don't believe it ever reaches frame 0 to take on whatever changes you made in that frame... 

...and what change are you making anyway? a single frame in the begining of the animation with out anything to change too just makes the single change to the entire timeline... you need a starting value and a target value.. such as the scale of x in frame 1 being 1, the scale of it on frame 10 at 2, and the scale of it at frame 20 being put back to 1, (which would cycle the bone up and down with a bit of a hitch at the end...)

Anyway, I could easily be wrong, but I think your best bet is to keyframe inside your animation timeline, and make sure you have applied your mesh's rot/scale