the thing is you have not mention how fast you are running your PIC. I found that problem when I ran my pic18f4550 with 20HMz, all I read back from the ds18b20 are zero/not connected. If I lower the chip to 4HMz then I can read the temperature.

I don't know how to confirm this, the OWOUT and the OWIN command might be too fast for the ds18b20 to catch up with faster pic chip ?