After a bit more digging I've managed to get a bit more information out of the logs:
2015/05/21 15:15:09 [14010] Invalid remainder length 467096064 [receiver]
2015/05/21 15:15:09 [14010] rsync error: protocol incompatibility (code 2) at io.c(1352) [receiver=3.0.9]
2015/05/21 15:15:09 [14010] [receiver] _exit_cleanup(code=2, file=io.c, line=1352): about to call exit(2)
2015/05/21 15:15:09 [14010] rsync: connection unexpectedly closed (1022021 bytes received so far) [generator]
2015/05/21 15:15:09 [14010] rsync error: error in rsync protocol data stream (code 12) at io.c(605) [generator=3.0.9]
2015/05/21 15:15:09 [14010] [generator] _exit_cleanup(code=12, file=io.c, line=605): about to call exit(12)
Does anyone have any idea what this might be? It seems the protocol incompatibility error can sometimes be down to the version of rsync you are using, but I have tried a few different versions with no success.