Well, I think there are two parts to the answer, but first a question, what is it you are actually trying to do?
As for the building a csRenderBuffer manually, below is some example code that builds a index render buffer out of an array of csTriangles. To be able to access the raw array, you should use csDirtyAccessArray instead of csArray
csDirtyAccessArray<csTriangle> triArray;
// fill the array
csRef<iRenderBuffer> mybuffer = csRenderBuffer::CreateIndexRenderBuffer(triArray.GetSize() * 3, CS_BUF_STATIC, CS_BUFCOMP_UNSIGNED_INT, 0, (size_t)~0);
mybuffer->CopyInto(triArray.GetArray(), triArray.GetSize()*3);
As for blender2cs, it does support submeshes. I believe it will automatically split up an object if you have multiple materials/textures, however I do not know if you can manually create submeshes too. I think someone more versed in blender & b2cs would have to answer that.
-M