Send string using i2c

I figured the best way to do it is by sending strings of data back and forth between the arduino and Pi.

So, why don't you?

String command = "";
int state = 0;
String report = "";
String pinStatus = "";

Those are NOT strings.

Everything works up until the point where a wire.write or wire.read a string

Probably because that is NOT what you are doing.