Buenas a todos ya lo he solicionado!!
El problema era que obtenía los datos del ByteArrayOutputStream antes de cerrar el Stamper y no tengo muy claro el por qué pero así debe ser. Pongo el ejemplo de la solución:
Código Java:
Ver original...
byte[] pdf = baos.toByteArray();
PdfReader reader = new PdfReader(pdf);
PdfStamper stamper = new PdfStamper(reader, baos);
info.put("Title", "Hello World stamped");
info.put("Subject", "Hello World with changed metadata");
info.put("Keywords", "iText in Action, PdfStamper");
info.put("Creator", "Silly standalone example");
info.put("Author", "Also Bruno Lowagie");
stamper.setMoreInfo(info);
stamper.close();
//Esta es la solución, ponerlo después de stamper.close()
pdf = baos.toByteArray();
...
Bueno Gracias a "todos" y espero que sirva algún día a alguien.
Saludos!