How to differentiate moods, characters, temperaments, etc?
Those terms can be divided into two groups:
First group, temporary, like mood: 心境, 心情. Those two are close to each other. 心情 is more temporary, can be changed in a second. 心境 is more stable and broad, but it can still be changed by big event.
For example, if you say:

I am happy today. This is a kind of 心情.
I am happy the whole month. This is a kind of 心境.

Obviously, if you are happy in a month, you are happy almost everyday in that month, so most of the time 心情 reflects 心境. But it is not always true, you can have an unhappy day in a happy month.
Second group, stable, like character: 脾气, 性格, 性情. Those three are very close to each other, the difference is very subtitle.
Well, I left 心思 (ideas, thoughts), because it's totally different from the above. I also left 气性, 心性, 性气, 心气, because they are rarely used nowadays.