Actually, there is only 1 vertex buffer and 1 index buffer for the entire model. The Vertex buffer that is exposed in any ModelMeshPart is the entire model's vertex buffer and it is the same buffer that is exposed in any other MMPs. No need to concatenate them, the entire buffer is in each MMP.
Each MMP has its own start index of that buffer and each MMP has its own variable that describes the number of vertices that are consecutive from the start index that are used for that particular MMP.
So in this diagram of the model's VB, ModelMesh[1]->ModelMeshPart[1]
has a start index of 300 and its number of vertices is 75. So this way, when drawing the MMP, the device knows to use only those few vertices of the entire VB.