In two places (classobject.cs and genericutil.cs) we call into AssemblyManager.LookupTypes and use just the first matching entry. We should look into these instances and check whether we can do a more informed decision on which type to choose exactly.
The respective code was adjusted slightly in #1318 (before we had an obsolete function LookupType that did the same).