It's rather difficult to help you if you don't answer questions intended to track down the problem.
However, I can answer some of your new questions.
Permissions on directories are not very intuitive. In theory, a directory is a special file which, rather than containing data, contains a list of other files (which may include directories). However, permissions behave slightly differently on directories than they do on regular files.
666 gives all users read and write access to a file or directory. In the case of a directory, read access is just the ability to see the list of files in the directory (which is, after all, just a list of files), but not to use them in any way (you need permissions on the file for that).
7 is 6 with the execute bit set. The execute bit lets you run a file as a command. In the case of a directory, this lets you traverse the directory to act on sub-directories. With directories, the read permission only gives you the names of the files in the directory, which execute lets you see all the files' meta-data.
For more, see http://en.wikipedia.org/wiki/File_system_permissions
As to GDM, it's probably just a security check. To make sure that you aren't giving any random user (and hence, any server process) the chance to trash your files if it gets compromised. Giving anyone other than the owner of a file in /home anything more than read access (read+execute for directories) is probably a bad idea for just this reason; typically, group-shared files would go somewhere under /var.
Hope that helps,
—Robert J Lee