You don’t need a the headers
I wonder if sending headers and HTTP post body has confused the API and it’s ignored your POST body because of the header
The API call to refresh is just
POST https://id.twitch.tv/oauth2/token
--data-urlencode
?grant_type=refresh_token
&refresh_token=<your refresh token>
&client_id=<your client ID>
&client_secret=<your client secret>
No headers needed, so remove that