I don't have much knowledge of fill modes (even/odd, or non-zero-winding), but I'll do a bit of research in the next day or so, if I get the time.
One thing I've noted is that you use the HP-GL/2Polygon Mode command PM a number of times, specifying a polygon mode status of either 2 or O - but it should be 0 (zero), not O (upper-case "o").