A bit of background on PCL XL errors:
PCL XL errors are reported because the printer believes that the print stream is corrupt in some way.
The printer is able to do this because the PCL XL language (the 'official' name for PCL6) is very highly structured - so any departure from this structure is relatively easy for the printer to recognise.
The reason for a corrupt print stream could be:
(a) A badly written, or corrupt printer driver.
This is more likely to be the case if the error is consistently exactly the same (including the Position value) for the same input (i.e. the same document, within the same application, being printed again via the same driver).
(b) Corruptions are being introduced between the PC and the printer (for example: bad cable, connection, port, network, etc.).
This is much more likely to be the case if the errors are intermittent and apparently random.
(c) A fault within the printer itself.
Probably much less common - usually (but not only) if Jetdirect card is bad.
If the corruption IS produced between the PC and the printer, then you could switch to a different driver, which uses a less-structured Page Description Language (PDL) like PCL5; if you do this:
(1) You will not get PCL XL errors.
But other PDLs may sometimes generate different error messages.
If the PCL5 interpreter detects an invalid sequence, it just ignores it, and then carries on the best it can, but no error messages are usually produced - exceptions to this are things like 'Out of Memory' errors, but these can also occur with valid streams.
PostScript probably sits in between PCL5 and PCL6 in terms of how easily the language interpreter in the printer is able to detect corruptions in the print stream, and react to them by generating PostScript error pages.
(2) You may still get corrupt output.
This could be very noticeable, or hardly noticeable at all, depending on the degree of corruption, and just where it occurs in the print stream.
PCL5 can usually 'recover', by 'synchronising' on the start of the next escape sequence, but other PDLs may not be able to do this, because it is more difficult, or impossible, to find something unique to 'latch on' to - hence they tend to abort the print, and produce an error report.
Finding out the cause of intermittent corruption is very difficult - the only practical way in most situations is via controlled (one at a time) substitution of components like cables, NICs, etc.
If currently going via a 'print server', try changing this, so that each client PC prints direct to the printer via a TCP/IP port, to see whether or not this makes any difference.