I expand my comments to an answer:
I guess, the paragraph contains more than one text element (w:t). Could you provide a sample document with this issue? What about extracting text with TextUtils.extractText on the paragraph element?
Try P.toString(). There TextUtils is referenced, which you can try with a StringWriter, too.
Using P.toString():
// Request paragraphs
final String XPATH_TO_SELECT_TEXT_NODES = "//w:p";
final List<Object> jaxbNodes = wordMLPackage.getMainDocumentPart().getJAXBNodesViaXPath(XPATH_TO_SELECT_TEXT_NODES, true);
for (Object jaxbNode : jaxbNodes){
final String paragraphString = jaxbNode.toString();
System.out.println(paragraphString);
}
Using TextUtils.extractText(...) and StringWriter:
for (Object jaxbNode : jaxbNodes){
final StringWriter stringWriter = new StringWriter();
TextUtils.extractText(jaxbNode, stringWriter);
final String paragraphString = stringWriter.toString();
System.out.println(paragraphString);
}