Always converging towards [1, 1, 1...] sounds like the NNs might not be getting enough important data (hence a random action is considered as good as any other) or the training process is somehow broken...
How about feeding it a bit more data like:
1. current unit HPs
2. the HPs of the enemy unit with the lowest HPs in range
3. total number of enemy units that have the current unit in range
4. total damage that those units could cause to the current unit
5. total number of enemy units that do NOT yet have the current unit in range, but are just one move away (say their attack radius + 2 * 32 pixels)
6. total HPs of allied units in range of the enemy units from point 3)
In Broodwar it doesn't seem logical to attack the strongest (having the most HPs) enemy unit, but it rather makes sense to eliminate enemy units as quickly as possible, so I'd say have the AttackWeakest instead of AttackClosest or have them both.
Besides, have you tested your ANN implementation on a much simpler problem like XOR or tic-tac-toe just to verify that training works in general?
Kinda off topic, but since I won't be able to compile your project any time soon, how about you streaming the training process? I'd be interested in watching the game play evolve?

BTW, you could message me at krasi000 at gmail or on FB messenger for faster communication if you like