Make a single texture atlas by combining all your mesh's textures into one, in any image editing program. Then you'll have to go into your 3D modeling program to set the texture atlas to all the parts of your model, and UV re-map. The re-mapping is not as daunting as you might expect- it'll usually just be a matter of rotating, proportional scaling and moving the groups of vertices until they fit with the new texture. Export the mesh with the new texture coordinates.
Combine your mesh parts into a larger one in runtime. When the models are being loaded, read each vertex buffer and index buffer and join them together to create one large vertex buffer and index buffer. This is a non-destructive change, as you still get to keep the individual mesh parts if you want to go back and make any further tweaks in the modeling program. Now with these new buffers, you only need one draw call and one texture change to render each model.
Your program sounds like it's drawing a complex or busy scene, so it may take some time to build the new vertex buffers dynamically. However, you'll just do this once each time they load in the program.