Either the $ppt variable isn't initialized properly (which I doubt, since it didn't complain about the NewPresentation call) or the Add or NewPresentation functions didn't work as you expected. I'd suggest adding a check on the success of the NewPresentation()->Add() call (similar to the way you'd do it for an open).
I'd think so. Like you, I've done OLE with MS Excel, but never PowerPoint. But just a plain 1 sounds wrong.
Edit: Just wanted to add a quick tidbit to mention that I don't have PowerPoint, so I can't do any examination of the OLE behind it. Sorry if this isn't very helpful.