I think you're having trouble because IPointCollection does't implement IGeometry or because you haven't set the spatial reference property, to add lots of points to a point collection as a multipoint, assuming your X and Y values are stored as an array or list:
object gMissing = System.Type.Missing;
IMultipoint pMulPoint = new MultipointClass();
It's not actually as complicated as you'd think.
It's simply a matter of installing both the SDK environment (ArcEngine) and the 64bit Background Geoprocessing for ArcEngine. Once that's installed, any tool that you execute in the background will leverage 64bit by default. There' isn't special code you need to have it execute in the 64bit space; it's just ...
Your issue is that you are only retrieving the "Id" field with your query. The
attribute is simply a shortcut for
and therefore still requires you to retrieve it with your query.
IQueryFilter queryFilter = new QueryFilterClass
SubFields = "Id", "Shape" //or whatever your shape field is called