Not sure if this helps, but here is how I have done it in my endeavours:
I originally tried to use HardwareSerial Class to pass, but seems it wasn't the right object. In the compiler error output it complained about trying to convert UARTClass to HardwareSerial. Once I dug around a few, I found the actual two classes I needed to be able to pass a HardwareSerial object.[Updated]
ucTx = &Serial;
ucTx = &Serial1; // Can be Serial 1-3 [s]Could just use Serial for HardwareSerial0[/s]
USARTClass is for HardwareSerial1-3(Serial1-Serial3).
HardwareSerial0(Serial) is of class UARTClass (virtual COM port via ATmega16U2 to PC).
main.cpp includes Arduino.h
Arduino.h includes HardwareSerial.h and variant.h
variant.h includes both UARTClass.h and USARTClass.h