How to shift cursor of a ST7032i based LCD?
Unless I missed this in your code you are still in "instruction table 1" mode, but the shift commands are only in instruction table 0. So instead of shifting the display/cursor, you alter the internal oscillator frequency. Sending another Ox38 at the end of your initialization routine might do the trick.