I'll start by saying that even Brazilians get those ones wrong most of the time, but I'll do my best to help a little bit (take everything with a grain of salt, I am not an expert). They all have similar meanings and are (incorrectly) used interchangeably by people but it's important to at least separate a few of them. "Esse" and "Este" are (again, incorrectly) used interchangeably, as is "isto" and "isso". The version with a "t" usually means something close to you and in the present, while the double s version means something AWAY from you and in the past/present. They can both be thought of as the word "this". Difference is the "esse"-like version is referring to a specific subject, usually something you would also atribute a gender to (esse being masculine, essa being feminine). The "isso" version is gender neutral (there is no issa) and is supposed to mean something more abstract.
"Aquele" and "Aquilo" both can be seen as meaning "that", except "aquele" is referring to a he or she. "Aquilo" is referring to an "it".
I'm pretty sure I didn't really help all that much (even though I tried!) and that goes to show you that it's a problem even for native speakers. We get it mostly right because we're used to it but I can see how someone just learning the language might have trouble.
Also, I have a lower score in Portuguese than you do, so there you go :-)
Interesting question, actually. I would say it usually means "gun" in a literal sense, but it can be thought of as a figurative weapon, like "our secret weapon to defeat our opponent" or something to that effect. The context of this question tells me that is is used in a figurative sense but overall I would avoid using it like that for new learners because most of the time, in conversation, when someone uses "arma" they are talking about a gun.