Hi yakirg,
I'm having the same issue as you and was wondering what your exact solution was?
I attempted to do the same workaround as you, wish I had of found this post a few hours ago, but now understand why it won't work.
However as I'm very new to Arduino (started today, but have a reasonable grasp of programming) I just had a couple of questions of how you achieved your solution.
Firstly, I understand a Steam is a base class but I don't understand how you would pass something to it?
When you say you passed it to the Init function, did you have to change the init function to include the OBDUART definition?
Any help you could give me would be fantastic. Also apologies for my lack of knowledge on the subject.