Ich finde die Reihenfolge Deiner Speicheraktivitäten ungewöhnlich und würde es einmal so ausprobieren:
Dim id As String
Set doc = uidoc.document
id = doc.UniversalID
Call uidoc.save
Call uidoc.close
Delete doc
Set doc = db.GetDocumentByUnid (id)
Set rtitem = doc.GetFirstItem("prot")
Set object = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "c:\prot.txt")
...
Call doc.save(True,True)
Set uidoc = ws.editdocument(True, doc, False)
Das nur als Gerüst, ohne jegliches Fehlerhandling.
Üblicherweise ist davon auszugehen, wenn die Datei separat unten am Dokument angehängt ist, dass das Richtextitem fehlt, in dem die Datei angehängt werden sollte.