Hi,
I had a similar problem where ImageItems were drawn above the axis lines and tick marks, which I solved by changing the z value of the axes with
[ plot.getAxis(ax).setZValue(10) for ax in plot.axes ]
I believe that also affects the grid lines. You'll need to play with the value (try -1) to push the axes back in the stack behind the plot lines.
Alternatively, you could probably setZValue(100) on each of your PlotDataItems when you create them to stack them in front of everything else.
Patrick