Have you tried overriding this behavior by declaring your own serialVersionUID in your custom class?
Do you have a specific reason for doing the extra step of serializing through a string? Normally you would just deserialize through an ObjectOutputStream.