Why not use the PlayStation 2 controller directly with the Uno? I've heard good things about Bill Porter's PS2 library. This would free you from needing to use software serial.
or use a hardware-based servo driver
I don't understand why external servo drivers are so commonly used. They just seem like an extra (and IMO unneeded) layer between the servo and the Arduino.
Here are some of the reasons I don't use external servo controllers. (Quoted from this reply.)
I generally don't want servos moving at constant speed. In the joystick/pan & tilt example, the program accelerates the servo up to speed and decelerates the servo to a stop. The target stopping point is constantly changing as the joystick is moved. So even if the servo controller could handle the acceleration and deceleration (which I don't think it can) the parameters of target position and target speed are constantly changing.
Besides the joystick/servo videos I have a couple other servo videos which demonstrate motion I don't think servo controllers could duplicate.
This is a simple demo showing a normal servo sweep with the position incrementing in a linear manner (servo on the left) vs a sinusoidal motion (servo on the right). I believe only the linear motion could be produced using an external servo controller.
This video is similar to the one I just mentioned, but on a larger scale. By controlling the position of each servo at 50Hz I think more complex motions are possible than simply commanding servos to move at a set speed.
In order to have servos responding to continuously changing input parameters, you need to actively control the servo at a relatively high frequency. I generally try to control servos at 50Hz since this is the refresh rate of many hobby servos and a 50Hz control loop is fast enough to appear "real-time". If the servos are supposed to be responding to real-time inputs, then they should be controlled in "real-time". Unless you want the servos to play back some sequence of motions which are independent from user input or sensor input, then I think you'll need to be continually updating the servos' positions. I don't see an advantage of having some servo controller PCB relaying these commands.