(First found this long ago, 2006, never wrote it up as a bug.)
PHPlot line styles (dashed patterns) are not being drawn properly when the dashed pattern is long relative to the data point spacing. The problem seems to be that the pattern restarts at each data point.
Although GD seems to do this correctly - continues a pattern through a series of line segments - PHPlot does not draw the plot lines in a way that allows this. The outer loop is X, and the inner loop is over the data sets (Y0, Y1, Y2). So PHPlot draws the first plot line segment for each data set, then the second plot line segment for each data set, etc. It can also draw data label lines and error bar lines in between drawing the segments. So it has to restart the line style (which includes color) frequently, and I think this is what causes the dashed pattern to restart.
Fixing this is hard (and assumes the above explanation is correct, which is not 100% certain). It would require changing PHPlot to draw the plot lines differently. Each data set would have to be drawn from beginning to end, with a style and color setup before and then a series of line segments. Data label lines and error bars have to be taken into account too. Each data set would have to be done entirely, before starting another.