A bit difficult to see exactly what is going on because you don't provide the charStack class (which by the way ought to be CharStack). Were you really told to use an array and make a Stack of restricted size?
Your getSize() method is returning the top item because that is what you have told it to do.
I have had a look at your stacks. You can get a String to an array of chars much more easily than you have done. Look through the String class API. Your switch method to fill the stacks is unnecessary. All you have to do is use the methods in the Character class to find out whether your char represents a digit, and use that to decide which Stack to put it on. You can probably also find out whether a particular char is whitespace and "lose" it.
But I think your stack will only work for single digits. If you put 9 56 3 in, you won't get 3 56 9 back. You will get 3 6 5 9. So you put three numbers in and get four back. It will make all your arithmetic wrong, and will also result in your still having items in your stack when you have finished.
Think what you can do with your char array if you find two consecutive digits.
You are going to have to take a different approach. Get your number and operator stacks, and test them. Give them push peek and pop methods, and getCount isFull and isEmpty methods. Give each of them a toString() method which prints out their details, and print method, which can be very simple:Give each of them main methods, and push and peek and pop numbers/operators. Go through them until you are happy they are working. Then get back to the class you are working on.