regsvr32 просто запускает регистрационную функцию, которую предоставляет ваша DLL. Если информация о регистрации в вашей DLL ошибочна, regsvr32 ничего не может с этим поделать. Если вы не уверены, что искать, вы можете попробовать запустить Regmon (sysinternals) с установленным фильтром на * regsvr32 * или так, а затем искать зарегистрированные идентификаторы GUID. Затем найдите их в подробном представлении DCOMCNFG. Вероятно, вы найдете его там, если regsvr32 преуспел. Это даст вам представление о корне проблемы, хотя фактическое решение зависит от того, что не так в вашей регистрационной информации.
Другая удаленная опция заключается в том, что у вас есть конфликт 32-64 бит, где regsvr32 запускается в 32 бит и DCOMCNFG в 64 бит или наоборот. Я не уверен, что показывает DCOMCNFG в таком случае - у меня никогда не было этой проблемы, но есть разные ульи реестра для 32 и 64 бит, и, возможно, вы не смотрите в нужное место.