Expose unit and language preferences
PreferencesPanel is a controlled surface: it reads a value and reports a change, and never stores anything. Where a reader's units live is your decision, so the panel refuses to make it.
Seed your state from defaultUnits (@mountaya/elements/profile), because every field is required and a partial value reverts a reader's units.