I know your doing almost all the heavy lifting right now, but I think you might be doing too much, and expecting too fast still.

Next time he seems like he's about to go down that road, take a walk, maybe put on some headphones/mp3/music on. Download an audio book, and get listening to that instead.

I think your trying so hard to respond and be perfect, your not giving yourself enough of a break. Just back away a bit, and your going to have to let him deal in his own misery. You can't fix it all.

Don't fall into the trap. Nothing good can come of it. You didn't break him, so you can't fix him.