If I understand correctly, your records are only being compared against the user's first record when patching?
I think the problem lies in the:
Filter(
MyCollection,
Not(ThisRecord.'Title' in LookUp('ABC', 'Created By'.Email = User().Email, Title))
)
LookUp only returns the first value it finds, so it will only compare your values to the first one created by the user. Try switching the code snippet above to something like:
Filter(
MyCollection,
Not(ThisRecord.'Title' in Filter('ABC', 'Created By'.Email = User().Email).Title)
)
Please note I haven't tested this code so you may have to play around with it a little bit.