Hi Jeff,
For the first question, cloning might be helpful for certain cases, two 
examples are:
1) It worked for some messages with special characters that got 
corrupted when modified directly.
2) When you already have a message in a folder, the fields displayed in 
the messages listview, like the From and the Subject, are obtained from 
the stored message only the first time, and are stored on an internal 
quick-access table for the listview. If you modify one of this fields on 
a message directly, this change is not reflected on the listview, just 
on the detail view (preview pane or opened message window). Modified 
clones are reflected correctly.
By the way, calling Commit to the message obtained by the CreateMessage 
method was never needed (I refer to the first Commit on the sequence you 
wrote).
Now I've got some questions for you too:
1) OEAPI Edition and Version number.
2) Programming language and development software version used.
3) Is it a DLL or an EXE plugin?
4) Has the Vista used by your customer UAC (User account control) 
enabled or disabled?
5) Is the Delete method called directly from the original message (I.E. 
OEMessage::Delete)? Or is OEFolder::DeleteMessage called?
Some ideas about the Delete failing are that UAC enabled might 
interfere, and also currently selected messages get locked by Windows 
Mail and fail to be modified/deleted directly (in this case calling 
OEAPIObj::SetSelectedMessageID(-1) is useful to deselect messages).
Thank you for contacting Nektra's OEAPI Support.
Regards,
Federico
-- 
Nektra Advanced Computing
http://www.nektra.com