i have most likely fixed the issue.
custom packets aren't needed in this case, the solution was simply -- mark block for update YES,
read inventory from NBT on packet NO.