How to get 3d view grid properties?
Your code works for me in 2.69, but there might be timing issues (grid_scale accessed but the view has not finished changing).

To get all 3D Views' grid_scale as a list, use:

grid_scales = [area.spaces[0].grid_scale for area in bpy.context.screen.areas if area.type == 'VIEW_3D']