Not sure this a bug or not, I was being attacked and set my army on the side of a fairly steep slope, had alot of problems placing my 2 cannons and ballista, even though the areas I wanted to deploy them on were fairly level. I manged to find 3 places for them although not really where I wanted, I was hoping to have my cannons overlooking the cliff, firing volleys down the side of mountain.
Once, the battle started, I couldn't move any of them, so just gave them orders to engage any target, then they started the reload animation, up to the point where the barrel points down, then stopped, and started looping. Eventually near the end of the battle a unit of elephants must of got to the only point in the map where my cannons could hit, and they started firing properly. My ballista only fired when something stood right in front of it.