Динамический не поможет в этом случае, так как вы говорите о приложении VB6, ссылающемся на COM-компонент, который был в VB6 (или что-то еще), но вы СЕЙЧАС хотите быть VB.net (или C #).
Тем не менее, вы должны быть в состоянии сделать это.
Вам потребуется использовать OLEView (или что-то похожее) для генерации MIDL для COM DLL, которую вы заменяете. Это даст вам конкретные GUIDS для всех классов и интерфейсов, определенных в этой DLL.
Затем вам нужно будет закодировать вашу версию DLL .net, указав КАЖДЫЙ ОДИН ГИД для КАЖДОГО класса и интерфейса.
Вы захотите посмотреть документы для атрибутов .net:
ComVisible
Guid
InterfaceType
и, возможно, еще несколько. Эти атрибуты позволяют вам специально указывать, какие GUIDS использовать для каких объектов и интерфейсов в вашей dll.
По сути, вы нацелены на то, что, когда вы генерируете библиотеки типов для двух библиотек DLL (старой и новой), вы должны получить одинаковые tlbs. Если вы этого не сделаете, новый не будет ссылаться с ранней привязкой, совместимой со старым.