Hello!
Yeah, that's quite a blast from the past, going again through this code written ages ago
I don't have any good news to bring however. The exception text points at "System.Drawing.Graphics.FillPolygon" method where I can't find any obvious culprits. It really takes only two arguments, brush definition to specify fill color and array of points to define the polygon shape. Unlike my later programs that get significantly more data dynamically, DH Companion is more self-contained and there is less problems that may happen with external data.
MSDN doesn't even mention ArgumentException possible for this method so there is probably something wrong INSIDE the drawing routines, probably not linked to program data (if there was ArgumentNullException, I would presume that something goes wrong at earlier stage and already wrong - null data is sent to the method).
GDI+ is very basic component of .NET (System.Drawing.dll to be precise) so there's no external library that could save you there. I have no real experience with WINE but if there are any compatibility settings for GDI+ (that are the graphics routines that the program uses, no DirectX, no WPF or any fancy stuff), you may try that. Good luck!