¿Cómo puedo configurar los datos XFA en un formulario XFA estático en iTextSharp y hacer que se guarden?

Tengo un problema muy extraño con los formularios XFA en iText / iTextSharp (iTextSharp 5.3.3 a través de NuGet). Estoy tratando de completar un formulario de estilo XFA estático, sin embargo, mis cambios no están tomando.

Tengo las dos ediciones de iText en Acción y he estado consultando la segunda edición, así como las conversiones de muestra del código de iTextSharp del libro.

Antecedentes: tengo un formulario XFA que puedo completar manualmente utilizando Adobe Acrobat en mi computadora. Utilizando iTextSharp puedo leer qué son los datos XML de Xfa y ver la estructura de los datos. Básicamente estoy tratando de imitar eso con iText.

Cómo se ven los datos cuando agrego datos y los guardo en Acrobat (nota: esta es solo la sección específica para conjuntos de datos)

Aquí está el archivo XML que estoy tratando de leer para reemplazar los datos existentes (nota: esto es todo el contexto de ese archivo):

Sin embargo, cuando paso la ruta al archivo XML de reemplazo e intento configurar los datos, se crea el nuevo archivo (una copia del original con los datos reemplazados) sin que se produzcan errores, pero los datos no se actualizan. Puedo ver que el nuevo archivo está creado y puedo abrirlo, pero no hay datos en el archivo.

Aquí está el código que se está utilizando para reemplazar los datos o rellenar por primera vez, que es una variación dehttp://sourceforge.net/p/itextsharp/code/HEAD/tree/trunk/book/iTextExamplesWeb/iTextExamplesWeb/iTextInAction2Ed/Chapter08/XfaMovie.cs

public void Generate(string sourceFilePath, string destinationtFilePath, string replacementXmlFilePath)
    {
        PdfReader pdfReader = new PdfReader(sourceFilePath);
        using (MemoryStream ms = new MemoryStream())
        {
            using (PdfStamper stamper = new PdfStamper(pdfReader, ms))
            {
                XfaForm xfaForm = new XfaForm(pdfReader);
                XmlDocument doc = new XmlDocument();
                doc.Load(replacementXmlFilePath);
                xfaForm.DomDocument = doc;
                xfaForm.Changed = true;
                XfaForm.SetXfa(xfaForm, stamper.Reader, stamper.Writer);
            }

            var bytes = ms.ToArray();
            File.WriteAllBytes(destinationtFilePath, bytes);
        }
    }

Cualquier ayuda sería muy apreciada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta