Is there a word for telling someone all your thoughts?
Solution 1:
It's definitely "colloquial", but from Cambridge Dictionaries...
unload - to tell someone about your problems, the things that worry you, etc.
(e.g. - I've been unloading my worries on poor Ann here)
The example usage unloading my worries above clearly shows how this particular metaphoric usage came about in the first place, but almost 2000 written instances of unload on you in Google Books should be sufficient to show that the intransitive usage is well established.
Solution 2:
How about vent?
From Dictionary.com:
vent: to give free play or expression to (an emotion, passion, etc.): to vent rage; to give public utterance to: to vent one's opinions; to relieve by giving expression to something: He vented his disappointment by criticizing his successor.
From the OP's example:
"When you've been trying not to talk about something but you end up blurting it all out in one big mess of emotion and it's all over the place and almost desperate," you are venting your pent-up emotions, confusion, anger, frustration ... or you are simply venting.
Solution 3:
The closest British English match (for this particularly emotional example) is
"To pour your heart out."
Solution 4:
It isn't a single word, but consider the idiom "spill ones guts," as shown in Idioms by The Free Dictionary:
to tell all; to confess;
to tell secret or personal information
to tell someone all about yourself, especially your problems
You don't currently give an example sentence, but based on your description here is how it might be used:
After all of Bob's badgering her over her recent hesitance to talk, Alice was ultimately compelled to spill her guts.
Solution 5:
Its not a single word, but how about "brain dump"? The most common sense means explaining or writing down everything you know about a subject. It is generally used to refer to knowledge rather than emotion though.