This is an interesting idea and I'm going to say it's not impossible, but it may be pretty complicated to get it perfect or at least acceptable. Let me first inject an alternate idea though.
What if you stick with ejecting the parafoil with your altimeter and control those servos with a radio instead? That way you can control the rate and direction of descent from the launch site. As I type that it sounds like a fun idea but this is the Arduino forum so I won't just leave it at that.
It's true that there are GPS control modules that are specifically designed for use in rocketry that might be suitable for this task, but let's face it, those are pretty expensive, and you would still have to include some modifications to make it work as you have described above.
So let's just look first at interfacing a GPS with an Arduino..
Here is a VERY BASIC demonstration of that which should work with most common internet available GPS modules. Arduino Playground GPS tutorial.
Okay, so you have your Arduino talking to the GPS module. Cool, step one. Now, the tricky part. You want to put the GPS module in a rocket. 99% of the GPS modules us amateur engineers can get our hands on have hard-coded limitations, so that they can't be used to control missiles, for obvious, anti mad scientist reasons. These GPS modules will cut out or lose at least partial function if one of two, or both height and speed limits are met. Some cut out completely when either is met, some cut out only when both are met etc. There seems to be some confusion among manufacturers about how exactly it's supposed to happen. I've even emailed a few and ask them and didn't get a definite answer. Anyway, the point is, that you're likely to run into this issue if your rocket (A) Reaches an altitude greater that 60,000 feet (Some shut off at around 40,000) or (B) Reaches or exceeds a speed of 1,200 miles per hour.
I'm not familiar with the capabilities of water rockets, but I know that these are achievable goals for a modest solid fueled model rocket. If you don't expect your water rocket can meet or exceed either of those then you probably don't have to worry about it.
As far as getting the rocket to circle the landing site during it's descent, that might be something you have to work out in your code. Perhaps something like having the Arduino store a center location at the moment the rocket leaves the launch pad, and work out a routine where it circles that point, or at least makes some effort to regularly navigate itself back in that direction every few seconds. That may be something you can test on the ground with a basic two wheeled robot too. Set it down, press a button to record the current location, then pick the robot up and move it away a few feet and work out some code that has the robot turning and moving in the direction of the starting point.
Once this project gets up in the air, the moving around bit changes somewhat though, and I'm not entirely sure how to work that out, but assuming pulling on a cord on the left side turns the parachure left, and pulling on the right side turns it right, that could be correlated to turning on and off left and right motors on a rover bot. I'm sorry I don't have much code for you at this particular moment, but I hope some of my ideas have helped.