This declares an array of zero length:
float responseArray[] = {};
Which explains your point two. It also explains point one - you're stepping on memory that's being used for other things and when other code writes on them too, your results are lost. Try:
float responseArray[30];