Definitely target version 3. It has a large number of story files, and lacks some complex features found in 5.
Once you have a handle on things, adding support for other versions should come fairly easily.
Story files you download are essentially copies of the machine’s memory and can be loaded directly into a byte array. Quetzal files are for saving your position within a game and the format is completely optional, although it is nice to support because it allows people to reuse save files across different interpreters.
Blorb is a format for storing graphics and sound files in a cross platform way, but version 3 games don’t use either of those things (except one single solitary version of Infocom’s: The Lurking Horror, which has sound support). It can also be used to bundle the entire story file with any resources, but again this isn’t particularly useful for version 3.
The standards document Danii linked is indeed definitive and thorough.
When I first started, I implemented the memory/stack first and then machinery to decode instructions. Then pick a game, e.g. Zork and run the game and implement the instructions one at a time as you encounter them. Most complexity for version 3 lies in the object manipulation and input reading instructions.