GPS positioning for quadcopter
People have reported obtaining ~meter range precision combining data from a GPS unit - again as Dzarda suggested, make sure you use a GPS antenna sensitive enough to pick the signal obstructed by the forest - and an IMU (Inertial Measurement Unit), measuring 3D acceleration and 3axes rotation.
I would personally recommend the 10DOF IMU from Pololu, which I have been using with Arduino and works nicely.

You will then have to implement the data fusion - kalman filtering using the data from the GPS and the IMU. You should be able to find a lot of documentation/tutorial/codes sample on the Arduino forum, on how to do that.