Koepel, unfortunately that will not help so much.
You have also used a lib that has the same flaw with the offset for a 1604 like the "LiquidCrystal_Software_I2C.h"
it will need an adoption of the .cpp
void LiquidCrystal_I2C::setCursor(uint8_t col, uint8_t row){
int row_offsets[] = { 0x00, 0x40, 0x10, 0x50 }; // patch this line for 1604
to work for a 1604 screen.
but as he/she is not able to give answers on questions, i think it's useless to bother any way.