So, I'm still not clear...what do you want it to do? In the OP you only said you wanted to compare MD5 sums of corresponding files. I don't see how copying fits into it.
I am trying to synchronize the files recursively in the 2 dirs, so that everything in the source is checked in the destination, and updated if necessary, using md5's to check the files.
Understood. In that case, once you follow my above suggestion for putting relative paths into the hash keys, then your cp statement simply becomes this: