Hello @Anonymous,
I think what is happening here is that as you are adding detail to your mesh, the face numbers are changing. So, because you have an "edit mesh" on the top of the stack, when the model gets reloaded the faces it was referencing aren't the same faces they once were, which is messing with your material assignments. I did some testing on a teapot, and this material changing behavior occurred when I had an edit poly on the stack with material changes, and then I changed the number of faces on the original model and reloaded.
I don't know Revit, but FBX was remembering my material assignments from the scene it originated from. So you really have a couple options for dealing with this issue. 1) Set your material ID's in Revit. or may try to 2) Link the Revit file instead of an FBX, which gives you control over individual objects. Here are a few links with more information, though some of it may be redundant for you.
It may make more sense to use the revit link instead of the FBX link. If you don't mind me asking, what is the draw of FBX link vs. Revit link when coming from Revit? At the end of the day all that you really need to do in Revit is make sure the right ID is applied, and then you can use a multi-subobject material and just drop it on the incoming models if the model has changed. But using an Edit Mesh on top will basically confuse the face numbers/selections because the incoming geometry and face/vert count doesn't match the stack above it. Does this make sense?
Best Regards,