Fix issue with structs fields that have the same name.

If have struct fields with identical names but of different types, then since their kind is both "struct" we end up trying to set the destination as the source value. This causes reflect.Set() to panic because the source type is not assignable to the destination type.