If I put a variable into the C...MeshFileLoader class, is that variable still existing after the mesh is loaded? I.e. is the whole MeshFileLoader class deleted after loading?
Yes, the data still exists, you should clean everything after the load. The loader object is only destroyed at app end.
Putting each texture into a separate meshbuffer won't help with the crash, but is definitely the correct way to store meshes in Irrlicht.