The state_dict will return the parameters and buffers, so you could try to use an nn.ParameterDict.
nn.ModuleDict is for nn.Modules and works fine:
# plain dict
d = {'a': nn.Linear(1, 1),
     'b': nn.Linear(2, 2)}
m = nn.ModuleDict(d)
print(m)

# OrderedDict
d = {'a': nn.Linear(3, 3),
     'b': nn.Linear(4, 4)}
o = OrderedDict(d)
print(o)
m = nn.ModuleDict(o)
print(m)