The issue is the order of bytes sent out is truly dependent on which NeoPixels you have. This is why when you init an instance you provide a color feature (NeoGrbFeature) that defines the order your pixels need. Usually you want to transmit in a standard order like R,G,B then translate on the ESP to the pixels you have in your build.
One way to do this is instead of building an array, is to write it into the strip as you parse. So you parse a R,G,B triplit, then instance up a RgbColor object with those, and set the pixel with that.
color.R = parseRed();
color.G = parseGreen();
color.B = parseBlue();