Wow that really is some sloppy output stage. Try sending a continuous data stream of an
equal number of 1's & 0's like 55h with a 1mS pause between each byte of data, and capture
a scope shot of this.

I'm curious is this data-slicer is ever squaring anything.