Looks resolved now - the RFM22b datasheet from Hope doesn't say (or I didn't notice) that the clear RX/TX FIFO is a double write - set '1' and then set '0'. It appears in an application note from SI. ...
I have just produced some code using an RFM22 module and a PIC16f687 to control it. Everything is fine except the use of the FIFO and what happens to the payoad - it sounds exactly like you ...