Das Problem ist folgendes: Wenn Du ein uidoc.Close machst, musst Du alle LotusScript- Objekte, die von diesem uidoc abgeleitet sind auf Nothing setzen. Erst DANN ist das Objekt vollkommen "zerstört" und Du bekommst beim erneuten öffnen wirklich eine neue Instanz.
Also:
Dim unid as String
Dim ses as New NotesSession
Dim db as NotesDatabase
Dim ws as New NotesUIWorkspace
set db = ses.CurrentDatabase
Dim doc as NotesDocument
set doc = uidoc.Document
unid = doc.Universalid
Call uidoc.Close(True)
Set doc = Nothing
Set doc = db.GetDocumentByunid( unid )
Call ws.EditDocument( doc, True )
Das sollte so eigentlich funktionieren.