Edit: I should mention that 'Gnome Failsafe' session works. Regular login bombs.
So your saying that everything in X now starts up fine. When you login with normal gnome session it messes up, but when you use Gnome Failsafe it runs?
Well then if X starts up and Gnome starts up in Failsafe then everything is working fine as far as your operating system goes. The part that is messing up is that there is a incompatability or corruption somewere with your user's preferences.
Another way to test it other then using Gnome Failsafe is to setup a extra temporary user and see if you can log in fine with that guy.
If that works then you've fixed everything else and just need to do some clean up with your session preferences.
Also check the date on your machine. Make sure that it doesn't think it's 1978 or anything bizzare like that. Since with X everything is based around networking having the correct time is important.
Another thing to check is to make sure that all the files in your home directory belong to you. Messing around as root can sometimes create preferences and such that are locked out from your user. Generally the command to fix this goes like this:
sudo chown -R usernameefaultgroup /home/username/
Finally make sure that there are no gnome proccesses that are still runing that may have got hung up during the upgrade. The easiest thing to do would be to reboot, but if you go
ps aux|grep username
killall whateverjob
or
kill <proccess ID number>
and if that doesn't bring it down
go:
kill -9 <proccess ID number>
and do that a few times.
Cleaning up your user's preferences would be the equivelent of pretty much purging your user's registry in Windows, if that was possible.
So the first step is to login in Gnome failsafe session since that seems to work.
Backup important things from your favorite applications. Like email, bookmarks, or other stuff.
Open up a terminal and do:
ls -al |less
All the files and directories with a . before the name are 'hidden'. These generally are used to store your preferences. If you've had this account for any length of time then there will be a LOT of them.
Also notice that there are 'special' files that are . and ..
. means 'this directory'.
.. means 'parent directory'. We want to avoid accidently working with these guys.
Remember that with bash you have wildcards. * means 'everything or anything' and ? means 'this can be a single character, any character but it has to exist.'.
To examine just your hidden files you would go:
ls -ald .??*
(the -d is used for looking AT directories rather then looking IN directories)
The .??* basicly is saying: 'any file or directory with a . beginning it and it has to have 2 additional characters and anything beyond that.' This leaves out the . and .. files which is a important thing.
To basicly reset all your preferences and applications log completely out of Gnome and X.
You need to make sure to wait a bit for everything to die down. Gnome has several background proccesses that will write out configuration files as they close and you want to avoid that.
So switch to a virtual console and login through that.
ps aux|grep username
and see what is running. If there is gnome stuff then wait, if it doesn't stop then kill them.
Now the important thing..
mkdir backup
for a backup directory of your preferences
mv .??* backup
And wait for that to finish. That way for a backup you can copy back important files like .bashrc and .bash_profile as well as game preferences (so you don't have to re-enter your quake3 cd code for instance)
Now switch back to X and see if you can't login normally.