It looks like certain special keyboard events are being given to other programs first, and since they take priority, and they tell the OS that the event has been correctly handled, it is unlikely that your program will ever be told about it.
<- the suggested solution here is to remove the shortcut from your OS's shortcut-keys map. You wouldn't find all of the keys you're looking for, and I don't have to tell you why this is a bad idea if you plan to distribute your code.
It now makes sense why you only get a print_screen keyup event; the keydown event was eaten by the print screen program, but that same program doesn't care about the key being released.
<- there is a Windows workaround mentioned here. You may find similar workarounds in X11 or Wayland for Linux systems. (Basically you create a Hook or System-Callback that gets called when the OS detects certain presses. I'm not sure if you're now stealing the event first, or if the other program will also be called, either way getting unexpected behavior may be just as frustrating for the end-user. Brightness up should just do what it says, I don't want it to make a funny boop and play an animation. It's sunny out and now I can't see the screen. ☹️)
There probably is a workaround for most individual OS's, unfortunately I am not aware of any cross-platform solutions to this problem... and it seems that the OS is trying to say that these keys are meant to be reserved, don't touch.
The best I can recommend is to not use those keys unless you are intending to replace them with similar functionality. <- of course this does not apply for personal use or hobby projects, it's your computer after all.