Проблема заключается в переопределении GetType, которое вы вызываете в конструкторе BaseClass.
Если вы создадите экземпляр типа Class1 и посмотрите на имеющиеся у вас методы, вы увидите все6 методов.
Если вы создадите экземпляр типа BaseClass, вы увидите только 4 метода - 4 метода из типа Object.
Создавая экземпляр подкласса, вынеявно вызывают конструктор в BaseClass.Когда он использует GetType (), он использует переопределенный виртуальный метод типа Class1, который возвращает ожидаемый ответ.