Yes I tried it. No success.
I suspect temporary bodies only supports IBody2::Display3 method to rendering any appearance in live (no face appearance rendering), and final bodies to not inherit parent temporary bodies appearance.
In other terms, I cannot set any MaterialPropertyValues on single face of temporary body, and if I do it, resulting final bodies does not inherit this face property.
Perhaps it is necessary to create an event listener that listens for a rebuild and then colors the faces with certain persistent IDs which are recorded in the macro feature rebuild function.
You won't be able to do this during that features regeneration.
You can use partevents
Or create a final macrofeature that does appearances. I actually have to do this myself.
Put this final macrofeature at the end of the tree. Set the Insertmacrofeature3 options to mustbeatend or something like that. It's an enumerator.
To help yourself.
Use imacrofeaturedata.setuserid and color according to some user id code.
Also keep in mind that at the end, some faces might not exist anymore if you are combining or subtracting bodies.