@escapedpolarbear Try evicting him and moving him back in. That's the best modless reset of a sim you can do. First, clear your cache files in your game folder in Documents. I think you're already familiar with them, but just in case:
- CASPartCache.package
- compositorCache.package
- scriptCache.package
- simCompositorCache.package
- socialCache.package
Next, go to Edit Town, split the affected sim off from the family, and move him to another lot. Use "save as" to rename the save (so you have a backup), quit, clear your cache files again, and move the sim back into your active household, again via Edit Town. "Save as" again, clear your cache files again, and test the sim; instead of using testingcheats to drag his fun meter, try telling him to watch TV or something easy.
Alternately, you can evict the whole family in Edit Town, save their house to the bin, bulldoze the lot, replace the house, and move the sims back in. Since the other sims are unaffected, it might not be necessary, but you could try it if moving around just the one sim doesn't help. And quit and clear your caches again, of course.
One of the reasons the fun meter (or another needs meter) can get stuck is if you use the cheat "makeneedsstatic." Undoing it ("makeneedsdynamic") doesn't always take full effect. So if you've used the cheat in the past, you might try making needs static and then dynamic again, to see if it unsticks the meter. But it probably isn't the reason your sim can't read a book.
If the sim's fun meter is fixed (by whichever technique) but he still can't read the skill book, try first telling him to sit somewhere or relax on the bed, and then directing him to read. Try it with different objects and different books, including those that aren't skill-related. The book itself could be borked, or the chair he wants to use; either issue is easy enough to resolve. But if he can't read anything, or he can't read skill books specifically, then that's a more problematic kind of corruption, one that can really only be addressed with a full reset, if at all.