Hi Victor,
Update 2: It seems this issue may have been causes by lazy loading from litespeed cache plugin
That makes sense. The masonry script calculates positioning based on the size of the element. It gets the calculation wrong because if some images are lazyloaded, the calculations based on the size of the element will be off because lazyloaded images are 0 in height when they are not within viewport.
That said, you’ll definitely have to pick between keeping lazyload but turning masonry off or the other way around.