Why does serial.read stop working?

Personally, I wouldn't bother with arrays for the instructions. The brewing machine only cares about one stage at a time so I'd parse the next stage's items out of the serial input when I needed them. If you send the whole recipe at the beginning, you'd probably need to buffer it in a char array, but I'd still parse on demand. Alternatively, you could have the arduino ask the python program for the next instructions as it needs them and parse as they arrive.