My understanding of rsync is that its default behavior is to copy the file if either one of things has changed:
If both of the above are the same, you can use the -c (checksum) option so that a checksum is done one both files. However there is a penalty where the files on each side need to be read and the CPU needs to do the checksum. Certainly beneficial if you have a slow connection (YMMV otherwise).
I would recommend that you do allow your program to change the modify date when it modifies the file (if that is possible). After all the file is indeed being modified. Also, it just makes the rsync much simpler.
I would highly recommend using rsync-backup though. It is a backup program that is a conglomeration of various building blocks (one of them being rsync). It's biggest benefit is that it only backs-up changed blocks. It's perfect for cases like yours where you have tons of data and only a few changes to send. I backup entire machines with it and it goes very fast,
The backup "area" consists of a mirror copy of your last backup and a (let's call it) proprietary area that holds changed blocks for previous backups. So getting a file from the latest backup is a no-brainer. You just use a file manager. Getting older versions of files does require some commands though.
One big caveat though... I don't think there is an option in rdiff-backup for checksum, so if your files remain the same size, you will have to allow the dates to change for rdiff-backup to pickup on the change.