Archimedes principle says that if a body is immersed in water the weight of displaced water is equal to the buoyancy force experienced by the body. Why volume of displaced water is equal to buoyancy and not to the substance immersed in it?
Imagine from the point of view of the water. Only the surface of the body is touching the water surface, what is inside of the body doesn't matter. What matters is that the body is rigid, so a volume of water equal to the body's volume is displaced.
Before immersing the body, the water surface was level. After immersion, some water has been displaced. The displaced water hence moves above the initial surface level. Now the water surface is a not perfectly level, but a part of surface is above the body's bottom end, and one part is below the body's bottom end (the interface).
Now this 'extra' water, which has risen over the initial water level, applies pressure on the water below it; the force on the sides of the body are cancelled (imagine a cube for easiness), but the force on the water gets transferred to the body from below. Hence we have buoyancy. What was responsible for the force? The weight (mass) of displaced water. That depends on the amount of water displaced, which is basically the volume of the body.
Note: In practice, the amount of water literally displaced is a variable (for example, very little when the body is floating on a large pool), and the buoyant force equals the weight of water equal to the submerged portion of the body.