Hi! Are you using the latest version of the code?
You are correct that negative ice thickness will not get taken into account by the model. That is because the masstransport core imposes a minimum thickness (by default 1m). That's ok because what you want is negative thickness change, and not negative thickness itself.
Here is the fix: Set md.geometry.thickness to a value that is larger than the changes you want (like 1000m everywhere). Then, set md.masstransport.spcthickness = md.geometry.thickness + thickness_change (your data) and the model should compute the pattern due to the difference.
I'm not sure what would cause the small elements to not contribute deformation though. Did you check that the ice and ocean levelsets look correct?
Lambert