Mine did this when water got into the gear linkage cables, they basically they rust and give you problems like this.
My old Punto also did this and it was just a spring broken off that pulls the gear stick to the middle, was a 5 minute fix.
Not saying this is the problem but it could be.