Hmmmm, so does that mean that you really can't have anything other than a String as a process variable if you want to be able to later retrieve and display it from the Content of a Task?
Note that I am using the WSHumanTaskHandler and in my custom task handler just before the User Task I set my Map on a resuts map and then pass the results Map when I complete the workItem:
Map<String, Object> resultsMap = new HashMap<String, Object>();
resultsMap.put("MYMAP", myMap);
resultsMap.put("OTHERSTUFF", otherStuff);
workItemManager.completeWorkItem(workItem.getId(), resultMap);
The next step is User Task and I then attemtpt to retrieve the original Map from Task Content.