I need to add the .msg files to outlook custom folder using VSTO addin c#
CreateItemFromTemplate
creates new items in the unsent state.
If you want messages in the sent state, you can use either Extended MAPI (C++ or Delphi) to open the MSG file (OpenIMsgOnIStg etc.) and copy the properties into the message created in the folder (keep in mind that IMessage::CopyTo won't work since MSG files do not remap named properties correctly which can result in a corrupted message).
If using Redemption (any language) is an option, it RDOMail object allows to set the Sent property before the message is saved for the very first time (MAPI limitation) and import an MSG file using the Import method (MSG is one of supported formats):
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Folder = Session.GetFolderFromID(YourOutlookFolder.EntryID)
set Item = Folder.Items.Add("IPM.Note")
Item.Sent = true
Item.Import "c:\temp\test.msg", olMsg
Item.Save