Arduino Uno R3 w/Vixen 3.x software for Pixel matrix Issues

Hello,
I have been trying to get my Arduino Uno R3 to work well with Vixen 3.x software. I can program up the Vixen software to do what I need to do without too much issues. My main issue is I have a pixel matrix of 15 Horizontal rows x 30 LED's, which is 450 LED's (WS2812B 5050 SMD Built-in WS2811 IC Black board LED strip lights) that I'm using. Code listed below that I'm currently using:

#include <FastLED.h>

#define NUM_LEDS 450
#define DATA_PIN 2

CRGB leds[NUM_LEDS];

// BE CAREFUL w/DEBUG!
// If you turn this on, do NOT expect a high refresh rate
// w/out some bytes getting missed. The Serial library takes
// a certain amount of time to output data, if too much data
// is output too quickly, it may not allow time to read before
// the UART buffer fills up. This can
// be improved by commenting out DEBUG sections you don't need
boolean DEBUG = false;

void setup() {

// Uncomment/edit one of the following lines for your leds arrangement.
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<NEOPIXEL, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);

// FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);

// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

Serial.begin(115200);

}

void loop() {

for(int i = 0; i < NUM_LEDS; i++) {
if (Serial.available() > 0) {
Serial.readBytes( (char*)leds, NUM_LEDS * 3);

}
FastLED.show();
}

}

I have verified each row and I have all 3 connections (GND, 5V, Data) hooked up correctly. I took the output of each strip and tied it into the input of the next strip. The strips are in a Zig/Zag formation, starting from the Bottom left and Zig/Zaging up from there. The data is getting the LED's, but it is like the alignment/location is off.
I have read in numerous posts and I still can't seem to figure out what is wrong. I have about 5-6 days to get this working (it is for a Christmas gift), so any help is much appreciated. I have no issues uploading the code to the Arduino and it seems to be performing without issues, other than getting all of the pixels lit up in order and color.

Thanks in advance for any/all help.

What is "Vixen 3.x software" ? Post a link to it.

...R

#include "FastLED.h"

#define NUM_LEDS 50
#define DATA_PIN 3
#define CLOCK_PIN 13

CRGB leds[NUM_LEDS];

// BE CAREFUL w/DEBUG!
// If you turn this on, do NOT expect a high refresh rate
// w/out some bytes getting missed. The Serial library takes
// a certain amount of time to output data, if too much data
// is output too quickly, it may not allow time to read before
// the UART buffer fills up. This can
// be improved by commenting out DEBUG sections you don't need
//boolean DEBUG = false;

void setup() {

// Uncomment/edit one of the following lines for your leds arrangement.
// FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // I changed RGB to GRB as that is how my pixels are configured
// FastLED.addLeds<NEOPIXEL, DATA_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);

// FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
//FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);

// FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
// FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);

Serial.begin(9600);

}

void loop() {

for(int i = 0; i < NUM_LEDS; i++) {
if (Serial.available() > 0) {
Serial.readBytes( (char*)leds, NUM_LEDS * 3);

}
FastLED.show();
}

}