I'm still kind of lost but seem to be making a little progress. I can see that the entire packet takes 20mS to transmit. It's hard to tell where one piece of data ends and the other begins. I can see the data change when I press buttons on the controller but some of the data isn't used for this application. In other words, those bits/bytes are just taking up space but must be included when the packet is transmitted.
Perhaps this will help you guys help me. I concentrated on the ones digit for the home team score. I think it takes 750uS to transmit the ones digit and I based that assumption on when the edge falls to when it rises again at the end. However, some of the data takes about 500uS. Is it safe to assume that it takes 750uS for a byte and maybe 500uS for a bit?
To duplicate the packet (I'm starting with the ones digit), I have the data from the PIC going to the input of a ULN2003A. On the output side I'm using a 10K pullup and then measuring it with the scope. One problem I'm having is that I can't quite get the timing right. I've attached two pictures that show my problem. The first picture is of the source. I'm trying to duplicate what is seen here. In the middle (-250uS from center to +500uS from center) is the number 2. 
Here is my attempt to make the number 2. As you can see, I had to adjust the sec/div to 100uS and the second pulse in the number two isn't the same as the source.
Regarding the data being inverted, what is the normal way? High to low or low to high?
I've tried adjusting my settings but nothing seems to help. The relevant settings are:
Code:
RCSTA1 = $90
TXSTA1 = $24
DEFINE HSER_BAUD 300
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
BAUDCON1 = %00111000
And then I send the data like this:
MAINLOOP:
HSEROUT [dec 2]
PAUSE 100
GOTO MAINLOOP
Bookmarks