Could we rename ReplaceOrAdd instances (in PropertyValueInstructionType or helper names) by AddOrReplace ?
It seems more straightforward and would allow users to type .Add and get both options making the difference clearer and thus improving the dev experience.