The problem is that you are reversing the words' character order using the same Stack. So, this is what is happening:
hello world is entered
You take hello and put it on a stack in reverse order
The stack looks like this -> olleh
You then take world and put it on the same stack in reverse order
The stack now looks like this -> dlrow olleh
Then you pop the stack and add each element to a stringbuilder
The string builder adds d into stringbuilder index 0 -> d
The stringbuilder adds l into stringbuilder index 1 -> dl
The stringbuilder add r into stringbuilder index 2 -> dlr
Etc, until you get -> dlrow olleh
Even in the fixOrder() method, you are using the Collections reverse() method which just does the same thing that you did in the wordReverse() method.
You would really need to do something like putting each word into it's own variable, reversing the character order, then add the two words back together.