ClearAll[replaceDuplicates]
replaceDuplicates[rep_: "X"] := Module[{f}, f[y_] := (f[y] = rep; y); f /@ #] &
Examples:
replaceDuplicates[] @ {1, 2, 3, 2, 5, 2, 1, 5, 5, 2, 3, 3, 7}
{1, 2, 3, "X", 5, "X", "X", "X", "X", "X", "X", "X", 7}
replaceDuplicates[Nothing] @ {1, 2, 3, 2, 5, 2, 1, 5, 5, 2, 3, 3, 7}
{1, 2, 3, 5, 7}
Alternatively:
ClearAll[replaceDuplicates2]
replaceDuplicates2[rep_: "X"] := Module[{y = #},
y[[Join @@ (Rest /@ Values @ PositionIndex[y])]] = rep; y] &
Examples:
replaceDuplicates2[] @ {1, 2, 3, 2, 5, 2, 1, 5, 5, 2, 3, 3, 7}
{1, 2, 3, "X", 5, "X", "X", "X", "X", "X", "X", "X", 7}
replaceDuplicates2[Nothing] @ {1, 2, 3, 2, 5, 2, 1, 5, 5, 2, 3, 3, 7}
{1, 2, 3, 5, 7}