I discovered that the Mac version of my program couldn't read documents saved by the Cocotron version. The reason was that objects which were being observed by key-value observing were being archived under their swizzled classes instead of under their real classes.
So here is a patch that changes -class and -classForCoder to return the original class instead of the swizzled one. This seems to be the behavior under MacOS, and it is implied (but not clearly stated) by Apple's documentation for KVO:
When an observer is registered for an attribute of an object the isa pointer of the observed object is modified, pointing to an intermediate class rather than at the true class. As a result the value of the isa pointer does not necessarily reflect the actual class of the instance.
Instead of relying on the isa pointer your application should use the class method to determine the class of an object instance.
This last paragraph implies that isa is the swizzled class, but that class returns the original class.