Não podemos dar uma resposta completa sem um exemplo de sua contribuição, mas posso dizer que sua compreensão dos grupos de captura está errada. Você não usa o sequencialmente, eles só se referem à regex no lado esquerdo do mesmo operador de substituição. Se você capturar, por exemplo, /(foo)(bar)(baz)/ , então foo será , bar será e baz será . Você não pode fazer s/(foo)//; s/(bar)// , porque, na segunda chamada s/// , há apenas um grupo capturado, então não será definido.
Então, para capturar seus três grupos de dígitos, você precisaria fazer:
sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/ : : /'
Ou mais legível:
sed -E 's/([0-9]*)\.([0-9]*)\.([0-9]*)/ : : /'