The idea is that provability is a syntatic concept while truth is semantic.
Formally, a mathematical statement is simply a sequence of characters (often involving things like "(", "$\forall$ ", "$x_1$", "$\wedge$", etc). A proof is a simply a particular kind of sequence of characters. Note that while these characters have generally agreed upon meanings, we are NOT applying them at this stage - a proof really is just a "special type" of sequence of characters.
When one says "I can't prove statement X from axioms A", one (officially) means that there does not exist a "special type" of sequence of characters beginning with things in A and ending with X. Note that there is no notion of whether or not "X is true" at this point.
Now, one of the most common ways one shows "I can't prove statement X from axioms A" is by exhibiting a model M of A which certain properties. A model is a set together with interpretations of any constants, functions, and relations. A model allows us to interpret a syntatic formal-string-of-characters mathematics statement as an honest to goodness mathematical statement, which then has a true or false value.
Then, in order to show "I can't prove statement X from axioms A", one commonly exhibits two models M and M' (i.e., 2 different interpretations of the symbols appearing in your mathematical statements) with the property that in both M and M', all axioms in A are assigned the value true, while X is assigned true in M and false in M'.
The point is that whether or not X is true or false happens in the two different settings M and M', so there's no contradictions. In any given instance (model), X is either true or false but not both. Undecidability means there are models where it's true and models where it is false.