PROGMEM use in Arduino

As I read about structs, I have a struct called Vocab with 2 members and an object VOCAB (I think...).

Not quite. You have a struct called Vocab with 2 members. You also have an alias for "struct Vocab" that is "VOCAB". This allows you to use "VOCAB" as the type where you would ordinarily have to use "struct Vocab" as the type.

It's a fairly conventional shorthand.

Can't help you on the rest of the questions/issues, though.