Tom,
Actually, nevermind about sending the code.
The problem is introduced because an internal GemFire class is calling the serialization framework attempting to serialize CopyOnWriteArraySet as part of region creation. It's hitting your code because custom PdxSerializers are inserted as part of the overall serialization framework.
As a workaround you will have to explicitly check for this class and not attempt to serialize it but allow it to default to Java serialization by returning false from your toData method.
We will open a bug to get this fixed.
In case you get any more issues like this, using your custom serializer, I'd appreciate you posting the stack trace to this thread.
Thanks
--Jens