Theme identity is determined by history, not by value
A theme edited away from a preset stays custom, even if its values later match. This decision avoids comparing every value against every preset during each colour drag.
Once a Theme is edited away from a Preset it becomes a Custom Theme and never regains preset identity, even if every value is later dialled back to match that Preset exactly. The alternative — treating a Theme as a Preset whenever all its values match one — is more intuitive and self-healing, but requires deep-comparing the working Theme against every Preset on each individual edit, and the Theme Editor mutates on every colour drag.
Consequences
A visitor who undoes their way back to a Preset's exact values will still see the Theme presented as custom rather than named. This is expected, not a bug.