There's several problems.
1) your house bounds are too large, so they can overlap in multiple directions, but you need to enforce only one direction. Make the bounds smaller.
2) in event 10 you are double checking House overlapping Roads, but in 22+ you are checking Roads overlapping Houses, which is not the same thing, and 22 and 23 both offset -105, which is wrong.
Fix those up and it works better.