Start-forms values are string-based deliberately to prevent an extra mapping-mechanism when exposed via rest. However, this does NOT prevent you of having typed objects in a start-form. Take a look at the existing form-property-types (see user guide). These can easily be extended to have string-property-values be converted to typed process-variables (Have a look at: org.activiti.explorer.form.UserFormType for an example on how to create one, and look in the /activiti-webapp-explorer2/src/main/webapp/WEB-INF/applicationContext.xml how to wire it.)
However, it seems like the thing you want to pass on isn't really something that belongs on a form, it's something that needs to be there in ALL of your processes, regardless of the values filled in. Then, as Joram pointed out, you can use execution-listener on the start of your process, setting the right Object instance as a variable, so you can use it throughout the process…