There's a command PaintSurface. You may LoadBrush the texture, then apply it to individual surfaces using PaintSurface. But there's a problem with the order of surfaces when loaded using LoadMEsh - they may not be the same every time, so you should not try to access surfaces by index, when loaded with LoadMesh. When they are already textured, then you may track down the filepaths of the textures, as seen in the SaveB3D example in the code archives to identify certain surfaces.
An easier solution is to load the mesh with LoadAnimMesh, this will make a child for every surface / object in the scene. The children can be identified using FindChild or EntityName etc.
An easier solution is to load the mesh with LoadAnimMesh, this will make a child for every surface / object in the scene. The children can be identified using FindChild or EntityName etc.