Over the past few days I've been in correspondence with Tabsoft trying to resolve this issue. I'm now at a total loss, and I think even Tabsoft is baffled as the issue just doesn't make sense.

The hardware:
Easypic5, solderless breadboard, Arduino UNO, DS1307, 24C256 EEPROM, 18F4580, BV4512 board, FTDI USB board.

Testing:
Serial port monitor, Hantek 20mhz scope

Basically running a simple code to scan the I2c buss and if any device is found to display it's address via the serial monitor. When using an identical script on the Arduino all three devices (DS1307, 24C256 and BV 4512 board is detected and their addresses displayed on the serial monitor. Running the equivalent code on the PIC it finds the DS1307 and 24C256 fine, but when the BV board is connected the PBO code detects a poor response on the buss and displays a "fault" message.

Using the scope the normal 9 pulses can be seen on both Arduino and PIC when just the two devices are running, but when testing with the PIC, both SDA and CLK lines are taken to GND when the BV board is connected.

Thinking that it may be something to do with the EasyPIC5 board the PIC was programmed and then moved to the breadboard next to the DS1307 and 24C256 chips. The same issue occurred so this eliminated the EasyPic5 board as being the cause. I've tried 10K, 5.6K, 4.7K, and 1K pull-ups on the i2c buss lines, but that makes no difference.

Anyone have any ideas of further things to try?

I would like to thank tabsoft for all his help. We've been corresponding via e-mail, often with me doing the practical testing, and reporting back with screen shots etc so we can try and resolve this. The only issue being that due to locations (he's in the US and I'm in the UK) it's often meant that I'm up until 3am most mornings and now I'm walking around like a zombie !!