Я не уверен, что это лучший способ сделать это, но он должен работать =)
var temporaryPresentation = Globals.ThisAddIn.Application.Presentations.Add(Core.MsoTriState.msoFalse);
var targetSlide = temporaryPresentation.Slides.Add(1, Interop.PpSlideLayout.ppLayoutBlank);
foreach (Interop.Shape shape in sourceSlide.Shapes)
{
try
{
shape.Copy();
targetSlide.Shapes.Paste();
}
catch (Exception) { };
}
temporaryPresentation.SaveAs(fileName, Interop.PpSaveAsFileType.ppSaveAsOpenXMLPresentation, Core.MsoTriState.msoFalse);
temporaryPresentation.Close();