Yo lo que hice con el tema de la compatibilidad en los sistemas fue armarme una clase que la llame ClsFiscal y ahi dentro volvi a definir las funciones, paso el objeto (ocx de Hasar o Espon) y tengo definida nuevamente todas las funciones por ejemplo ClsFiscal.AbrirComprobante, en una propiedad de la clase le paso el modelo ClsFiscal.TipoImpresor = "HASAR" y dentro de cada funcion consulto que es y de acuerdo a que modelo realizo la accion. Por el momento me funciona bien, hay que trabajar mas porque escribir por cada tipo de controlador todo de nuevo pero si aparece algun modelo nuevo a usar ya se a donde tengo que ir a escribir y es bastante sencillo.
Mucha suerte y espero haberte servido de Ayuda.
