The zips you shared both contain one .usdc file, the snippet i shared in my last reply is the billboard usdc file, converted to ascii - you can see that it itself contains no geometry, it has a reference to another file :
asset identifier = @../../../../../../Users/proto/Desktop/billboard.usdc@
Which is a relative path that will resolve to something on your PC, but not on mine.
There's two ways, generally speaking, to deal with USD in a host application :
1) Converting to the application's data model entirely -> this is what our importer does
2) Creating a "reference" to a USD file, i.e. if the usd file changes on disk, its reflected -> this is what the stage object does, and I think this is closer to what the "import" in unreal, works.
I understand what you are trying to do,
The issue is that your materials bindings are destroyed when you import a mesh, and then re-export. If the material bindings where defined on another, stronger layer, in an override, or via collection based bindings, you could swap the mesh layer via import export, and not touch the material bindings at all as they wouldnt go through 3dsmax, only the mesh would be imported. I dont know what is possible from unreal, if you can tell it where to output the materials, or if you can tell it what the edit target should be. In an ideal world you would not need to import in 3dsmax at all, and the max tools would just work on prims selected in a UsdStage object, but we are not there - right now you can move prims and edit properties, but not work on the geometry - but this is something we want to do. Setting the edit target (target usd layer) is also not accessible from the UI, only via scripting (we currently default to the session layer).
To achieve what you want, you need to setup a USD layer architecture for the scene that separates the materials / bindings / meshes - having all that in one layer (and the materials being below the mesh in the hierarchy) causes Unreal materials to go through 3dsmax's import/export, which will definitely not preserve them - as mentioned above, if you import in max, it means converting to max's data model, and there is no notion of Unreal materials in there. It would be possible via scripting to handle that conversion, but it doesnt come "free". It's the same for maya and blender imports. Maya has the proxy shape workflow, which is not an import as defined above (more like 2)), using that it preserves everything in USD and you can make native USD edits to it on a live stage - similar to the USDStageObject in max, but it is more advanced / has alot more control/features. Maybe blender has something similar, i dont know.
There are probably 50 other ways to "fix" the materials using python, maybe simply reconnecting materials automatically after re-import..
Shawn's video above presents a way to achieve the kind of thing you want to do. USD is extremely flexible, and quite complex, there are alot of rules to understand how stage assembly / composition works and it's usually necessary to think ahead about the layer structure. We do not have good tools from 3dsMax at this time to build USD layer architectures that very are flexible - all of the USD python API are available however and run from 3dsMax / over the USDStageObject.