Я сделаю предположение, потому что я не в курсе .NET
Я бы предположил, что ваша декларация берет ваши открытые методы Class2 и создает из них интерфейс COM. Он будет принимать только методы (и свойства) для Class2, а не наследуемые (в противном случае вы получите все открытые методы вплоть до базового класса).
Решение, вероятно, состояло бы в том, чтобы объявить Class1 также как COM-класс (можно пометить его как закрытый), а затем указать, что COM-интерфейс идентификатора Class2 происходит от COM-интерфейса Class1.
Что-то вроде этого должно сделать свое дело.