Since you are trying to create a control system that will control the helicopter in real time, one of your biggest things to look for is low latency links. This pretty much will throw out WiFi as an option unless you are able to guarantee that your WiFi network will be fast enough and wont be dropping any packets.
So options left are XBee, Bluetooth, hacking the current controller.
Hacking the controller will probably provide for the lowest latency link since it is a wireless connection that was specifically designed to fly the helicopter. This will require you to do some reverse engineering of the controller unless the controller already provides some information on how to interact with it. The hacking involved here might be simple. You will just have to make the controller think that a human is actually moving the controls. This can either be done by physically interacting with the controller, or you can look to see what signal the controller is using for each control, and then just fake that signal.
XBee and Bluetooth can perform in pretty similar manners. Many modules will build a buffer before sending a packet on, you will need to program the modules to not buffer too much. With this option the reverse engineering will be on the plane instead of the controller. Depending on how nice this helicopter is, there might be a prebuilt control system on the plane in order to keep it flying easier. If this is the case it might be difficult to figure out how to add XBee or Bluetooth to it. If it is a simple helicopter and/or you want to hack this side, it would probably be easiest to just find out where the wires for the motors are and control them directly with your microcontroller. This will give you lots of flexibility on what you want to do; however, flexibility does also result in the possibility of more work for you.
I hope this helps you out. There is no "right" answer here, it is just where your comfort lies and how much control you want.