Problem solved! Well, sort of...
I installed the .net 3.5 service pack - thanks LJensen for that advice, it seems to have helped a ton. Not much lagging now at all. I've managed a few 18 table sessions without a crash, but quite often after 10 or 20 minutes this happens:
I decided to try dragging the crash message to the bottom of the screen and just doing nothing, and sure enough, the program kept running just fine! I remember the Cake poker client used to do the same thing a few years ago, and I think I've know Internet Explorer to do it as well. So the program isn't crashing, just the crash message is getting triggered and then shuts down the program if I click on OK.
Another problem I've noticed is that it isn't possible to edit how many decimals are shown in the stats configuration. I wanted to have 1 decimal place for the M value on the HUD, but if I go in and edit it in the stats config the program isn't remembering it. Also although Q is shown to 1 decimal place, in the config the number shown is 0 as well! And I'm wondering what the % button is supposed to do?