Downconverting real signal to IQ baseband
The allowed bandwidth of the data created and used to modulate the IQ signal needs to be below the cutoff frequency of the receiver post-heterodyne low pass filter, which needs to be below the carrier frequency, which needs to be below half the HF sampling rate to avoid aliasing.

So try a lower data rate and/or a much higher frequency carrier, with a suitably corresponding higher frequency sample rate.  You can lower your data rate by using a slower changing rand statement, and filtering that to remove harmonics of the squarish pulses.