I figured out a quite complex solution if anyone has this same problem again.
You make a family with all the overlapping items and you assign it an instance variable say OverlappingNumber.
Every 0.1 seconds (less or more, you decide based on the resources available) you set the whole family's OverlappingNumber = 0
Then under Every 0.1 seconds you add this event: for each family member you check if the family is overlapping with Sprite1, then in another event, Sprite2, and so on you write a huge bloody list for every sprite that you want this specific overlapping fix to add to. If it is overlapping you do Sprite1.OverlappingNumber + 1.
After that it's just a matter of testing if the overlapping number is less or equal than 1 when things overlap.