The problem is not ownership, it's how samba maps unix file permissions to windows file attributes. Because the world executable flag is set Samba is showing setting the hidden attribute. You can set windows to show hidden/system files to confirm. The solution is to remove the world executable permission but I'm not sure what effect this will have on the ftp server....
Pick a file to test with and execute
chmod 644 /path/to/file
then see if you can view the file by browsing to the share with windows. If so, the samba mapping is definitely your problem and you will need to figure out what the permissions need to be to allow reading/writing via windows and ftp. Once you have that it's pretty easy to script changing the permissions on everything all at once.