Currently the serialization system serializes class fields in the order of their declaration and there is no mechanism for detecting which one of two lists was modified, to be able to prevent the override of the modified list.
In the case of the repro project this is what happens:
When user modifies one of the lists in the inspector a serialization of the corresponding scriptable object is triggered. First the list named "source" is serialized, and after that the list target is serialized. As both target and source point to the same location in the memory, whatever values the list "target" has will override the values of the source, even if the user modified the source. Note that if the order of the fields declaration changes in the class (e.g. source list is the second and the target is the first), then you'll see the opposite issue, where you can modify the source but not the target.