The bug is related to 31581 and the main cause is the small offset that BM_loop_interp_from_face introduces before calculating barycentric weights. Solved by only calculating displacement layer.