I know you posted this a while ago, but did you find a solution after all? I'm trying to figure this out as well... I have custom fields when creating threads, but what's the use when you can't edit them right?
I didn't get as far as you did though, could you explain (or post the code) you used to populate the fields again when editing the threads?