"But I'm having a problem, quite often the populaion i overrun with exactly the same genes. I really need hlp figuring out how this is happening."

There can be a number of reasons for that.
(1) Your population size is too small (GP works best with large populations)
(2) Your mutation rate is too low (but your program it looks fine), or
(3) Individuals with a low fitness have a too low probability to reproduce. If only the fitest individuals are allowed to reproduce they will take over the whole
population. So weaker individuals have to have a chance to reproduce too. The probability for this depends on the population size. For a large population it can be low, for a small population is has to be high.