What are your temps (cool and warm side)? Cool side is about 70-75 and the warm side is 80-85
What is your humidity? Between 30 and 40%
What type of thermometer/hygrometer do you use (dial,stick or digital?) Dial

Here's part of the issues. His temps are too cool, his humidity is too low and the dial stick on deals tend to be way off. Bump his temps up to 80-82 degrees cool side, 90-92 degrees warm side, 24/7 (no night drop). You can grab an Acu-Rite at WalMart (or something similar though a different brand name at Home Depot or Lowe's - requires one AAA battery). These digitals will give you a better handle on the actual temps and humidity. The dial gauges can be quite a bit off. An Acu-Rite is usually around $10.00.



The humidity should be about 50-60%, bumped slightly during a shed cycle if he needs it. This can be achieved by moving his water bowl closer to the warm side, or changing it to a water bowl with more surface area, covering part of the mesh lid on his tank to help keep in heat and humidity (things like Saran wrap, a piece of plexiglass, etc. work...just leave room for proper air exchange of course).

Once you have his enclosure stable and in the correct ranges for a ball python I would leave him be for a week with no handling or attempts to feed. At the end of that week, introduce a live rat fuzzie/very small pup, cover the enclosure with a dark sheet and leave them alone. This size rat cannot hurt your snake so it's safe to leave in overnight. Don't peek, don't go back in the room, just leave them together until morning.

Once the snake is eating that size prey for a few weeks you could slowly bump him back up to an appropriate size rat. That would be a small rat, not a medium. A medium rat is a large prey for any ball python, especially a male ball python eating one every week so that's likely part of why he started fasting in the first place.