Store Dynamic-accessible hidden metadata in a cell

You can give "Input" cells a default TaggingRules option of TaggingRules -> {}. Then, using CurrentValue will not include the notebook tagging rules. For example:

SetOptions[
    EvaluationNotebook[],
    StyleDefinitions -> Notebook[
        {
        Cell[StyleData[StyleDefinitions->"Default.nb"]],
        Cell[StyleData["Input"],TaggingRules->{}]
        },
        StyleDefinitions->"PrivateStylesheetFormatting.nb"
    ]
]

Then,

CurrentValue[EvaluationNotebook[], TaggingRules] = {"parent" -> "default"};
CurrentValue[EvaluationNotebook[], TaggingRules]

{"parent" -> "default"}

Let's try using CurrentValue to modify a cell:

CurrentValue[EvaluationCell[], {TaggingRules, "key"}] = "value";
CurrentValue[EvaluationCell[], TaggingRules]

{"key" -> "value"}

The notebook tagging rule is not included.


This works for your explicit case:

CurrentValue[EvaluationCell[], CellFrameLabels] = {
   {
    None,
    Cell[
     BoxData[
      PopupMenuBox[
       Dynamic[
        CurrentValue[
         ParentCell[EvaluationCell[]],
         {TaggingRules, "MyRule"}, 
         FrontEnd`SetOptions[
          ParentCell[EvaluationCell[]],
          TaggingRules -> {"MyRule" -> None}
          ]
         ]
        ],
       {6 -> "6", 24 -> "24"}
       ]
      ]
     ]},
   {None, None}
   };
Options[EvaluationCell[], TaggingRules]

SetOptions didn't like operating on the ParentCell so I had to force it to pull that from the kernel, but it should still perform alright I think.

Basic Idea

Here's a kinda solution. I'm gonna assume when the CurrentValue isn't defined you use a default value. If that's the case you can do this:

CurrentValue[
 EvaluationCell[],
 {TaggingRules, "key"},
 FEPrivate`FrontEndExecute@
  FrontEnd`SetOptions[FrontEnd`EvaluationCell[], 
   TaggingRules -> {"key" -> "default"}]
 ]

That forces the TaggingRules to be directly set rather than updated. Here's a proof of concept. First set up some state that can be inherited:

SetOptions[EvaluationNotebook[], 
  TaggingRules -> {"parentKey" -> "default"}];

Now usually we'd get inheritance:

CurrentValue[
 EvaluationCell[],
 {TaggingRules, "key"},
 "default"
 ]
Options[EvaluationCell[], TaggingRules]

"default"

{TaggingRules -> {"parentKey" -> "default", "key" -> "default"}}

With this trick though we don't:

CurrentValue[
 EvaluationCell[],
 {TaggingRules, "key"},
 FEPrivate`FrontEndExecute@
  FrontEnd`SetOptions[FrontEnd`EvaluationCell[], 
   TaggingRules -> {"key" -> "default"}]
 ]
Options[EvaluationCell[], TaggingRules]

"default"

{TaggingRules -> {"key" -> "default"}}

Is it elegant? No. But it works if that's all you care about.