O Código do getter nProperty resulta erro, pois a propriedade nProperty só existe em ClassA.
Você poderia estender, não?
Como posso realizar um typeGuard para um dos três tipos do MyArray2?
Melhor do que eu explicar por cima. Ta aqui um guia de como usar TypeGuards no ts!
https://blog.logrocket.com/how-to-use-type-guards-typescript/