Как правило, вам нужно «нормализовать» строку на основе ваших пользовательских правил, а затем выполнять поиск.
Поскольку не существует общепринятого отображения, включающего, по крайней мере, «Latin B», равное «Greek B», вы должны создайте свой собственный - базовый c словарь Dictionary<char,char>
может быть достаточно.
В качестве части этой "нормализации" вы также можете рассмотреть отображение di git - для этого на самом деле доступна официальная информация Unicode - GetDigitValue .
Таким образом, общий код для нормализации будет выглядеть так:
var source = "А9"; // Cyrilic A9 - "\u0410\u0039"
var map = new Dictionary<char,char> { { 'А', 'A' } }; // Cyrillic to Latin
var chars = source.Select( c =>
CharUnicodeInfo.GetUnicodeCategory(c)==UnicodeCategory.DecimalDigitNumber?
CharUnicodeInfo.GetDigitValue(c).ToString()[0] :
map.ContainsKey(c) ? map[c] :
c);
var result = String.Join("", chars);
var term = "\u0041\u0039"; // Latin A9
Console.WriteLine(source.Contains(term));
Console.WriteLine(result.Contains(term));