Ok, as chtz said the problem was actually in the way I was checking if the eigenvector is right. When calculating vct2(i)/vct(i) I was sometimes getting right answer, sometimes not. When using vct2-lambda*vct it showed that vector was always correct. Poking around a bit showed, that all the places where division was giving wrong answers, had coefficient of order 1e-17, so basicaly zeroes.
I was dividing zeroes by zeroes. The vectors themself were good.