Hi @jaco011. I do not have Vault, so I could not advise about that side of your question, but I may be able to help you devise a plan or process for a task like this through code means. In order for a document to be able to use a material or appearance, there must first be a copy of that Asset (object used to store material, appearance, & physical property data) locally within that document, not just in a library somewhere. So, within each Part type document will be copies of every Asset it is currently using for something, and potentially a copy of every Asset that it has used in the past, if they have not been purged. The document itself can not simply be assigned an entire material library as its reference, but you can set the 'active' material/appearance library in the project settings. Also, just in case you were not yet aware, the same library can be used for both materials and appearances. Each MaterialAsset has a reference to an appearance type Asset, and a physical properties type Asset. Also, there is not an AppearanceAsset or PhysicalPropertiesAsset type API objects, they just properties of the MaterialAsset which refer to generic Asset API objects.
Will the 'new' material/appearance (in your new library) have the exact same name as the 'old' material/appearance that already exists in the existing documents? If not, you may have to plan creating on a 2 factor list, which has the old name, and the new name, for reference later in the automation process. Then within the individual existing documents, a code could cycle through each local asset, check if its name is in the 'old' side of the list. If found, it can get the new asset name, try to find it in your new library, try to copy it to the document, and replace the old asset. There may be other similar processes, but this one seems fairly logical, and potentially doable.
Wesley Crihfield

(Not an Autodesk Employee)