It looks like this problem linked to a change in the arduino IDE (recent versions will have this problem, older ones not). To resolve it, you need to remove a line in one of the project files which specifies the level of optimization for the compiler to use. It looks like this alters the timing to the graphic controller, and thereby garbles the screen. In the file ultralcd_st7920_u8glib_rrd.h, it's line number 9:
#pragma GCC optimize (3)
Comment the line out by adding two forward-slashes at the start and then recompile, and the graphic controller should work (mine did).
//#pragma GCC optimize (3)