I don't understand why the diff shenanigans. Rsync has that built-in, so you shouldn't need to be doing that as a separate step.
I am using cwrsync (3.0.6) and its failing no matter what switches I try.
If it is a file size limit, you could try to split(1) the file, then rsync the chunks. You might also try cygwin 1.7, which has improved the support for modern Windows OS dramatically.
Looking into cygwin now, I didn't think it will make any difference, cwrsync is fairly recent.
hrm, splitting first, I'll try that.