Use a standard render-queue and sort full objects (sub-meshes) back-to-front.
It doesn’t matter if the vertices are all in 1 single large vertex buffer. You need multiple index buffers, 1 for each sub-mesh (a single draw call of a translucent part of the overall model). I don’t know what you mean by “buffering” your data. Once the VBO and IBO’s are created buffering is done. You just use a render-queue to decide the order in which to draw everything.
How would I be able to tell OpenGl in which order it should render the individual polygons, without having to buffer my vertex/index data over and over again?