Mike,
I haven’t had a chance to look through your code in detail, but I think you may be mixing the Reactive functions and the Parameterized Class approach.
You are creating parameterized classes, but then not defining any parameters.
It also looks like your decorators are mixing the syntax of the two approaches. If you are writing a function that depends on a parameter, you should use the @param.depends('parameter_name'), where you have just the parameter name in quotes without the .value and the decorator is from param.
If you are using the reactive approach and defining a widget and a function that depends on the state of the widget, then you would use @pn.depends(widget_name.param.value), where the decorator is from panel and you don’t use quotes within the parentheses.
I’m referencing the API documentation as I write this, so that might be helpful to you as well.
Also, I think I worked through a somewhat similar issue, so you might look at my question about linking list selectors.
Hope this is helpful info.