This is way too much code.
For one PropertyDrawers need to be stateless, as they are reused for multiple fields. That’s probably where the issue is.
Secondly, you can auto-draw a serialised property with a PropertyField so there’s no need to handle that yourself.
Here’s my basic general solution using UI Toolkit: abstract SkillList that can be edited in Inspector - #15 by spiney199