That looks great, thank you. I think that should indeed solve everything so far; but it seems that PolyML.export was broken somewhere along the way and now causes Poly/ML to crash (segfault) when calling it. The change happened somewhere between 3b9b3b0 and 3e0f720.
Here's a backtrace from gdb:
#0 CopyScan::ScanAddress(PolyObject**) #1 CopyScan::ScanAddressAt(PolyWord*) #2 ScanAddress::ScanAddressesInObject(PolyObject*, unsigned long) #3 CopyScan::ScanCodeAddressAt(PolyObject**) #4 ScanAddress::ScanAddressesInObject(PolyObject*, unsigned long) #5 CopyScan::ScanObjectAddress(PolyObject*) #6 Exporter::RunExport(PolyObject*) #7 Processes::BeginRootThread(PolyObject*) #8 polymain