An idea for the ranged issue, have each range (A, B, C...) as a separate attack value that accumulates. example... an Army(3) archer, pikemen would do 1/3 of its attack at range A, then 1/3 at range D (or whatever pike is at) then the other 1/3. just throwing half formulated ideas out.
I really like the rest of it and most of the adjustments your considering otherwise.