i2c bus speed issues
I found the solution to my problem.
When I used the Microchip EERAM chip, I found that I had to place a dummy byte in TxBUF immediately before setting the Tx interrupt i.e. like this:
UCB0TXBUF = 0x55; 
UCB0IE = UCTXIE0;

If I didn’t do this, the 1st byte of the address in the chip I wanted to write to, was not sent.
However, that line caused the problem with the FRAM chip as, sometimes, the 0x55 was actually transmitted as the 1st byte to set the address in the chip I wanted to write to.
I am unclear why this only happened sometimes. It was found by using a logic analyser to repeatedly grab 2 seconds worth of communications &amp; I noticed the 0x55 when it should have been a different value transmitted (as well as the fact that 3 bytes were transmitted for the address &amp; not just 2).
Further, in the ISR I also had the line UCB0TXBUF = 0xFF; immediately before I cleared the Tx interrupt i.e. like this:
UCB0TXBUF = 0xff; // to prevent UCB0IFG from having TXBuf empty flag
UCB0IE &amp;= ~UCTXIE0; // disable TX intr

I have now changed this &amp; now clear the IFG setting after disabling the interrupt i.e. like this:
UCB0IE &amp;= ~UCTXIE0; 
UCB0IFG &amp;= ~UCTXIFG0;

So thank you to all who tried to help, it is greatly appreciated.
P.S. I am now successfully communicating at 1 MHz.