Solved!
The issue was the format in which the MQTT message was split and sent to the PLC. S7 PLC requires the message as a javascript object within an array.
The important line was msg.payload = json.stringify(data);
Previously I wasn't changing the payload to a json string properly before it flowed through the json node to convert to javascript object.
Debug window showing correct format of message.
** **