Todas retornam valores de coordenadas, mas são informações diferentes, e nem sempre trarão os mesmos resultados com uma simples substituição.
pageX/Y e clientX/Y consideram como ponto de referência o canto superior esquerdo do navegador.
A diferença entre as duas é que pageX/Y considera toda a página renderizada (por exemplo, se sua página for "alta" ou "larga" demais para mostrar na tela, tendo a barra de rolagem para ver o conteúdo acima e abaixo e pros lados, ela vai considerar estas áreas ocultas também). Então se, por exemplo, rolar a página para baixo, o valor de pageY vai aumentando para valores acima dos limites da sua tela no navegador (suponha que ela tem 600 pixels de altura, o pageY pode retornar um valor maior que isto, se sua página for rolando para baixo. É relativo às dimensões da sua página criada, relativo ao html.
Já clientX/Y só retorna valores dentro dos limites da tela do seu navegador (suponha que sua tela no navegador tenha 1100 x 600 pixels, os valores retornados por clientX/Y estarão sempre entre estes limites) mesmo que sua página seja maior que a tela. É relativo ao campo de visão fixa da sua tela do navegador. Relativo ao viewport.
Agora screenX/Y tem como referência o canto físico do dispositivo (tela do monitor, notebook ou outro dispositivo, não do navegador. Relativo ao dispositivo.