That sounds like you are trying to put the coordinate and triangle arrays together for some reason - .surf.gii files are not metric files, but all gifti formats share the base parsing code, so you might get that error when you give a .surf.gii file to a command that expects a metric file. Cifti files do not store the surface coordinates or the triangle (vertex neighbor) information, they are intended only for values such as thickness, fMRI activation, etc. You could put the surface vertex coordinates into one, but they would be interpreted as data to display using a palette, not as locations. We continue to use .surf.gii to store surface coordinate and neighbor relation data, which is why spatial operations like -cifti-gradient require surfaces as separate arguments.
See also these explanations, though they don't explicitly make the point about surface coordinates/neighbor info:
That also sounds like a native mesh surface, which is difficult to compare across subjects directly. We register and resample our surface data to fs_LR standard meshes before creating cifti files, so that we can do comparisons and math between subjects directly by indices. The 32k resolution is matched to human 2mm data, and is what the Glasser MMP 1.0 is defined on, so that is probably the one you want to use. You might consider using the HCP pipelines, possibly via the QuNex container to handle the software dependencies, in order to do our recommended alignment and cleanup preprocessing, and it will give you cifti versions of the data that you can then parcellate.
Tim