Bugfix for changing the type of a config.

Match properties to transfer by name, but only do the transfer
if the generic types match as well as all annotations.

This fixes a problem where one sub-type defines a property of
a fixed-size array, and another sub-type defines a property
with the same name but a different fixed size.