I'd try something a little more extreme, but still not as extreme as
starting totally over.
I'd create a new account from the console (I think you said you could
get to the console) (the useradd command), then see if I could log in
as that user. If I could, I'd make that user an admin (add it to the
admin group in /etc/group), then use it to fix the problems with your
original account.
To do that, I'd remove all the dotfiles and directories to a
subdirectory (I call it olddots when I do this), then I'd copy over
what I considered the important dotfiles from the new account, and see
if that fixes the problem. I'm about to leave for lunch and people are
waiting, so I don't have time to look up which ones look essential,
and whether eny will need to be edited for another user's home.
If you can't log in from the newly made account, let us know, and
maybe someone can help.