Thanks for your suggestion.
I did some research myself while waiting for anyone's feedback because I was desperate to recover my files.
I found it was very strange that if I go into the directory which caused this -36 error, I tried to copy that specific directory or file, I still had the same -36 error. I then deleted that file. Something happening to the directory that this deleted file resided. A hidden file was generated in this directory. The file name is:
.DS_Store
I then restore the deleted file. The problem disappeared. So I looked into each directory of this drive which causing the -36. Indeed there was no such hidden file in some of the directories. I either had to delete and put back just any file, the hidden file was automatically created. I then copy the directories over to my target drive.
Everything worked.
So my problem solved but I could not understand why with the .DS_Store hidden file created, it solved the problem. I don't know what this files does that helped to resolve -36 error code.