My strategy for defending and attacking for siege is a different approach than OP. For defence, I let the AI control the archers, for the most part, and concentrate on placement of infantry forces at access points i.e. ladder, gates, prospective siege tower approach. Usually the catapults will destroy the siege engines then all that is left are the ladders and that is wildly easy to defend, one access point to concentrate on. I rarely get casualties in the double digits.
For attacks I attack castles and towns that are weak and easier to take. Even if there is a large number of defenders the task is relatively easy, build a battering ram, then build trebuchets, the trebuchets will destroy any enemy catapults and breach the wall or walls, so in essence you have two open access points at the beginning and a potential third with the gate. I don't rely on archers I rely on movement. Either, I overwhelm one of the breaches and go open the gate or just personally bypass the defenders in the castle open the gate and send my infantry through the main gate while the two other breaches are being assaulted. The enemy quickly crumbles and is routed. It does not always work out as planned but I am successful more often than I fail.
Also, since patch 1.2.9 I am selective about defending during a siege as the mechanics changed drastically since I last played. Usually I let an attacking force wear itself out then attack the siege camp. I havent had to defend against a large force like 2300 though.