Hmm... unfortunately I couldn't reproduce this issue... the code also looks correct to me Just make sure to not confuse the default values for these commands: For surfacescale, the default value is 1 1 1 (a scale of 1), while for surfaceoffset, it's 0 0 0 (an offset of 0 blocks)
Sorry, I have made more test and your right, the two commands work well. However, there is a problem which caused the confusion: "Surface scale" and "offset" are inverted at the left side of the HUD.