So it looks like I wasn't understanding the issue:
In ios, region monitoring doesn't require a background process. When a fence is triggered, the app is woken up to run the specified callback. So you don't actually have to do any background process setup to work with a geofence.
I'm still trying to wrap my head around how to manage instances of modules in Titanium, but regarding the background process/geofence issue, it's not something you have to worry about.