Apple surely suggests to assign colors in the draw event, i.e., the paint event. In there you can call IsDarkMode so you can know what to do. The appearancechange event just tells you that the change is going to happen, but setting colors over there won't work because the actual change occurs a bit later. So there is no point to propagate the Appearance Change event to your classes.
On windows, you should apply the same technique yet the IsDarkMode isn't doing anything good (at least that's what is being experienced when dealing with adjusting a plugin). Make sure you assign the colors in paint.