+1 for a software problem:
When the Master sends a read command (R/W = 1),
the MCP3425 outputs the conversion data bytes and
configuration byte.
That would be my guess: You are reading the configuration byte as low data byte.
Hmm, maybe you are right, what Im getting is:
Db1: 11010001 Db2: 00011001 Db3: 11111111 Db4: 11111111
where Db1 is the slave address, Db2 seems to be 2nd Byte, Upper Data Byte & all what is following is gibberish..
I tidied up & cleaned the little code I made, maybe you could have a look at the logic?
I commented the actions Im taking.
I imagine the problem is TWCR code 58: (Data byte has been received; NOT ACK has been returned)
I think the master must somehow send ACK.