Como podes deducir de lo publicado por delphi.com.ar, el problema es que en la clase padre: TImpresora el método Imprimir no es virtual. De hecho, estoy seguro que delphi debiera mostrar un mensaje de error al intentar compilar el código que publicaste, puesto que el método sobreescrito (override) en las clases hijas no existe en la tabla de métodos virtuales de la clase padre (pero esto es solo una suposición).
Hasta luego.