I've tried a few OCR solutions. Ultimately, the best was Google Vision, by a long shot.
It works great with unusual fonts/handwritten allcaps, and it's the absolute best when it comes to working with low-resolution images.
I have no experience using it with hard-to-read handwriting, but it might be worth checking it out if you don't know it already.