Hi,
may be useful to little bit more clarify which function if for what.
dtparam=i2c=on ... ONLY enables the hardware for the I2C but no any software for that.
dtoverlay=i2c-gpio is one step above, means that it works like a above PLUS the generic software driver.
You may use this in case that you don't have any exact device which already uses the I2C control.
For example, when you have RTC, or I2S audio board connected, than it uses the I2C for it's control commands and than you will see the rest of the I2C bus even without any of the overlays mentioned above.
Generally, the overlay dtparam=i2c=on,i2s=on,spi=on you never need. dtoverlay enables the corresponding bus automatically.
The only exception is the dtparam=i2c_vc=on which enables the dedicated HAT detection bus and is supported directly by the firmware. Use it only in case that you have some HAT board and you like to use it's internal overlay.
Hence as already stated, the changes are too often and with large steps and changes which means that you need to look at github for the updated state and new functions.