Два словаря, но не дублируйте элементы в каждом.
У вас будет словарь значений и словарь ключей.
Когда вы вызываете метод add, вы генерируете GUID, добавляете его и ключ в словарь ключей.
Затем используйте GUID в качестве ключа к словарю значений.
Если вы хотите добавить два ключа, вы добавите еще один элемент в словарь ключей с тем же GUID.
Конечно, это означает, что для каждого поиска требуются две проверки данных, но не более, даже если у вас есть 50 ключей для одного и того же значения.
Поиск guid на основе ключа из таблицы ключей, затем поиск данных на основе этого guid в таблице значений.