Shouldn't make a difference, disabling CRC only you would get an error in receive if the CRC is incorrect but it would give a signal.
Payload length is only needed when using implicit header... So that one is not used. I did both receiving and transmitting with this code, but it seems I have mixed it up a bit.
I used this code below in the receive interrupt btw:
u1_t len = readReg(0x13);
u1_t snr = readReg(0x19);
u1_t rssi = readReg(0x1A);
u1_t buffe[512] = {0};
// set pointer to 0
writeReg(0x0D, 0x00);
readBuf(0x00, buffe, len);
writeReg(0x12, 0xFF);
But this has nothing to do with your problem. I think I don't know how to solve your problem unfortunately, I ran out of ideas. The antenna seems te be fine.