I've had the same problem with the same archers in my Sind game. They never fired effectively or at all directly out over the walls.
My solution!

Playing an underdog like Sind vs the Ghorids, or ANY faction as an underdog vs the Mongols works well using the strategy your employing.
Rather than shooting directly out over the walls however, you must let them come in!
Use the city landscape to your advantage, any high points in the city with the right angle on where they approach, stuff it with archers. I still use the walls, as well, except they fire inward on the city rather than outward.
I managed to defeat a full stack of Ghorids with only a half stack, taking only a hundred or so casualties, my hindu longbowmen doing most of the work having inflicted 200-300 casualties each.
My point being, let them in! You can still use the walls if they've got a clear shot on the street that your enemy will be marching up, use expendable spearmen to act as roadblocks to screen for your archers if necessary.
Though I never got a chance to try and defend in this way on a large or huge city, since those have a radically different kind of terrain. Those being largely level ground, anyhoo, your archers are still the most useful unit you'll have in sieges. Don't crowd them in the city center, make use of every last inch of obstruction that the city provides, once it comes down to the city center your archers will no longer have the best arc to fire on the enemy. They'll be smashing in and mixing with your own men, and your archers will fire so low that they'll hit them in their backs.