I ran across a VIEvent problem I've seen others have and wanted to share what I found. I poll 32 vCenters for VM Migration events which are written to a database we use for troubleshooting application errors. I like several others I found on the Internet started receiving the deserializing error you see in the subject line while enumerating through the event pages and sometimes when initially creating the eventCollector.
I finally started sniffing the traffic and found the response for event types matching 'HostSubSpecificationUpdateEvent' was the cause of the problem. It seems the event has a hostSubSpec property sent as binary data. It's my belief that PowerCLI is trying to then convert this and add it as an XML element but fails.
We can circumvent the issue by specifying 'DrsVmMigratedEvent' as the EventTypeId in the EventFilterSpec but if you have multiple event types you're querying for it may be problematic. I thought I'd share.