You need to import the FieldDefinition into the ModuleDefinition before writing IL that points to it.
So after looking at your code it would be something like this.
var fieldReference = ModuleDefinition.Import(field);
Action<Collection<Instruction>> load = collection => collection.AddI(OpCodes.Ldfld, fieldReference);
I also note that you have another bug. By the time you are in the above code you have lost the context of the type arguments. So you are trying to call something on List<T>
instead of something like List<MyClass>
. But you can raise another SO question if you cant solve that one :)