There’s indeed a simple way to ease decoding the message and save your time and effort:
Grab your phone and call him.
Then go through his list with him and work it out until you have it.
Instead of asking what it exactly is that he wants you may apply the following technique:
Sum up and paraphrase what you understood so far and ask the other person if this is what he wants.
Ok Bob, please check if I got this right, okay?
You want a double chock vanilla chai latte without ice delivered in a plastic bag before midnight, right?
Then continue working from there until you get a “yes” and have all you need to fix the issue.
You may want to create a “paper trail” of what you agreed on by summing it up and sending this by email to him.
This is to create evidence in case of “but I wanted something else” and at the same time providing a model of how to phrase questions in the future.
I realize that this is only the second best solution to your problem - the best being Bob just getting his act together and providing you with properly written requests.
He might get it after a few of your phone conversations and improve (or not).
When talking, you might even get to know him a bit and some of your frustration might melt away.
It might be that decoding customers requests is part of your job, even if you don’t like that part very much.
It is also possible that this effort is not part of the contract with the customer. Then the extra support your company provides could be re-negotiated and billed. Hopefully you will get a share of this!