Você não declara no início do programa!!!!
O TRISx deve ser configurado como entrada, quando se está recebendo dados, e como saída, quando se está enviando dados...
O clock é definido pelo "Delay" que você irá fazer entre o estado alto e baixo do pino SCL, e portanto, depende do oscilador também...
Mas, para que tudo funcione, não se esqueça dos resistores de "pull-up"...
Abraços!