Не видя ввода, трудно сказать, каков наилучший подход. Возможно, вам понадобится использовать класс RegExp для анализа ваших ключей и значений. Если вам удастся получить достаточно чистые пути к значениям, вы можете избежать использования string.Split (), чтобы разбить путь на массивы ключей и пройтись по реестру, используя эти значения.
Включает ли входной набор тип значений или можно предположить, что значения уже существуют в реестре?
Немного больше информации о входном наборе было бы полезно. Например, возможно?