Replace references not serializing in C++

I’m currently working on a blutility for replacing materials with material instances. It works really well at creating material instances but I’m struggling to get replaced references to serialize after replacing them in the scene. In my blutility I created an editor node which basically wraps this function:

FArchiveReplaceObjectRef ReplaceAr(Referencer, inReplacementMap, false, false, true);

I found this piece of documentation: FArchiveReplaceObjectRef::operator<< | Unreal Engine Documentation

Which describes serialization but I can’t see it used anywhere in the source code for the engine. From my understanding I also need to leave redirectors for the asset but I’m struggling to find a function to do so.

I’ve also noticed that hard references in the reference viewer aren’t set when I use this function.

Does anyone have more experience with this? Am I going about this the wrong way?