One other little 'note to self' for this particular program...
In this case, you're only sending a handful of codes back and forth, not random binary data that has to be coded and decoded 'on-the-fly'.
So, why not 'hardcode' each of those 'bytes' to their equivalent manchester values?
0 = 01010101
1 = 01010110
and so on.....
At least that way, you'll take out any chance that the 'manchester routine' is causing the problem.