How do you manage versions of work flows in WF when you have long running work flows and you might have two or three versions in the persistence store at the same time and have
I did a series of 4 blog post covering most of the stuff you need to be aware of when versioning long running workflows.
One thing I tend to avoid is using the HandleExternalEventActivity as this greatly complicates things. For that matter I tend to stick to simple types and xml serialized objects.