Ok, first of all, take a breath and relax. For the stuck shed you can put him in a small container with 1/2" of warmish water. Make sure it's not too deep and make sure you poke holes in the top for air. Let him soak for about 30 minutes and then let him slither between your wet hands. You can do this once a day for several days. This can help with a stuck shed.
As for the weight, how do you know he was underweight when you bought him? Do you have a small scale on which you can weigh him? That's the only way to know for sure whether he's losing weight. You'll want an electronic scale that weighs in grams like
this one. Weigh him before you feed him, but after he's pooped and keep track on a calendar or in a journal. How long have you had him? Something to keep in mind is that snakes grow slowly because their metabolisms are slow. They don't gain weight and grow like warm blooded animals. If your journaling shows that he is losing weight and/or his poops are watery he should go to an exotic vet that treats reptiles.
As for the enclosure, is the heat mat connected to a thermostat? If it is not, please unplug it until you can get one. These mats can easily reach temperatures in excess of 100 degrees and can burn your snake. A thermostat like
this one is available on Amazon for less than $20. I would also suggest providing a second hide spot on the cool side of the enclosure.
Do you have a hygrometer to tell you what the humidity is? Aspen bedding isn't quite as effective at holding humidity as something like cypress mulch. I would also suggest taking some plastic or tinfoil and covering most of the screen top of your tank to help hold the humidity in.
What is the usual temperature of your house? Heat mats only provide a hot spot so if the ambient room temperature of your house is too low that can also cause stress for a snake.