Quando modifichi il contenuto di un Mixed campo come freeform_data, devi notificare a Mongoose che hai cambiato il suo valore chiamando markModified(path) sul documento modificato o su un successivo save() la chiamata non la salverà.
Ad esempio:
user.freeform_data = { foo: 'bar' };
user.markModified('freeform_data');
user.save();