Yeah, that is what I have been battling with. What happens is that it loads the lobby screen, and then after that is done, it does the mod loading. Since the hero data has already been read by the lobby screen, it doesn't use any of the altered functions after the mod loading. I wanted to see if I could RuleInit.lua or globalinit.lua to make Lobby.lua call its Lobby:CreateAvatarPanel function again so that it would reload it or something to that sort, though I haven't figured out a way to call it =P
It sounds like you're probably out of luck, as the same limitations that apply to the SC lobby apply here. If memory serves, globalInit isn't specific to any one state (they each use it to set up their lua environment), and RuleInit only runs in the pre-game state, which is somehow separate from the lobby and is also not affected by loaded mods.
I don't yet know what all they've changed from SC to Demigod, but there was a reason that all of the (incomplete) SC faction-add mods had to be .scd mods. I'd guess that adding a Demigod is pretty much like adding a faction in SC.