I'd start by combining all of the ROIs in such a way that you'll get a separate value for each one. You can follow some of the instructions laid out
here. The key is to create a dummy (empty ROI) and then use 3dTcat to concatenate all of your ROIs together with the empty one first. You can then use 3Tstat with the -argmax argument, which will result in a single NIFTI (or HEAD/BRIK) that has all of your ROIs, each with a unique value.
As for mapping that file to the surface, you can use
3dVol2Surf to do that.
-Peter