Сборка загружается в домен приложения, статические поля (на которых основан синглтон) создаются для каждого домена приложения.Для каждого процесса существует как минимум один домен приложений, поэтому вы получаете как минимум один экземпляр для каждого процесса.
Ваш компонент ActiveX создается в другом процессе, а не в приложении .NET.Вы не получаете разделяемую память.
Чтобы создать экземпляр Singleton только один раз, вам нужно запустить один процесс и получить к нему удаленный доступ.Вы можете достичь этого с помощью удаленного взаимодействия, DCOM, WCF или чего-то подобного.Вы должны убедиться, что оба процесса обращаются к этому экземпляру.