No sé si lo habrás tenido en cuenta pero tanto el pin SDO como SCK tienen que estar explícitamente configurados como salida.
También habría que ver sin al pin que se utiliza para SDI no hay que configurarlo como entrada digital, ya que también puede ser configurado como entrada analógica.
Para asegurarte que el puerto funciona como entrada digital tienes que hacer 0 el bit 2 del registro ANSELH. Se puede hacer con lo siguiente