Sorry for not addressing problems for this submission for a long time. I found if you have axes with prospective mode turned on, the function returns wrong points some time.
So, I have 3 choices:
1) Check prospective mode and issue a warning
2) Force axes to prospective mode off just before selection
3) Somehow calculate projection even if prospective mode on. Currently I have no idea how to do it.
A great little utility. I also had problems getting the correct points. However, I was able to overcome this by always setting the axes to be uniform (n x n x n).
eg/ axis([-50 50 -50 50 -50 50 1 3]), where 1 and 3 are colour scaling.