Thanks for the detailed description - Not sure how much I can help, but the behavior you’re describing is odd indeed The JWT should only be signed using the private key, not verified.
jwt.io is be able to verify an RS256 jwt by just pasting it into the “Encoded” field - No other action is required:
It’s hard to know what could be going on with the API you are attempting to pass the JWT to, but to my knowledge all validation libraries work this same way.