Inconsistent behaviour

Hey. I’ve been having some issues with this snippet I’m writing, but can’t for the life of me figure out what I’m missing. Code is as follows:

#include "FastLED.h"

#define rFactor 10      // round to nearest this value
#define rDown 4        // highest value to round down

#define numLeds 16
#define dataPin 5
#define numStartcycles 3

uint8_t value[] {0, 100};

uint8_t input = 10;

uint8_t brightness, darkness, step, fadeUp, fadeDown, numFadeSteps, fadeProcess;

CRGB leds[numLeds];

uint8_t start[] {0, 1 , 2};
uint8_t cycleCount = 0;

void setup() {
  Serial.begin(9600);
  setValues();
  fadeUp = darkness;
  fadeDown = brightness;
  print();
  FastLED.addLeds<UCS1903, dataPin, BRG>(leds, numLeds);
  
}

void setValues() {
  brightness = input * 250 / 100;
  darkness = brightness / 2;
  uint8_t calculateFadeSteps = map (input, value[0], value[1], value[1], value[0]);
  if (calculateFadeSteps < 1) numFadeSteps = 1;
  else numFadeSteps = calculateFadeSteps;

  uint8_t calculateSteps = (brightness - darkness) / numFadeSteps;
  if (calculateSteps < 1) step = 1;
  else step = calculateSteps;
}

void loop() {
  setValues();

  for (uint8_t i = start[cycleCount]; i < numLeds; i += numStartcycles) {
    leds[i] = CRGB(0, fadeUp, 0);
    if (cycleCount == 1) leds[numLeds - 1] = CRGB(0, fadeDown, 0);
    leds[i - 1] = CRGB(0, fadeDown, 0);
  }

  if (++fadeProcess >= numFadeSteps) {
    if (++cycleCount >= numStartcycles) cycleCount = 0;
    fadeUp = darkness;
    fadeDown = brightness;
    fadeProcess = 0;
    Serial.println(cycleCount);
  } else {
    if (fadeDown > darkness) fadeDown -= step;
    if (fadeUp < brightness) fadeUp += step;    
  }

  FastLED.show();

  Serial.print("fadeDown: "); Serial.print(fadeDown);
  Serial.print("\t");
  Serial.print("fadeUp: "); Serial.print(fadeUp);
  Serial.print("\t");
  Serial.print("fadeProcess: "); Serial.print(fadeProcess);
  Serial.println("\t");
  //
  delay(1);
}

void print() {
  Serial.println();
  Serial.print("input: "); Serial.print(input);
  Serial.print("\t");
  Serial.print("brightness: "); Serial.print(brightness);
  Serial.print("\t");
  Serial.print("darkness: "); Serial.print(darkness); 
  Serial.print("\t");
  Serial.print("numFadeSteps: "); Serial.print(numFadeSteps); 
  Serial.print("\t");
  Serial.print("step: "); Serial.print(step);
  Serial.println("\t");
}

This returns the values expected for all values for input higher than 32, but below 32 it starts messing up the fadeProcess counter. Unless, of course I comment out the
FastLED.addLeds<UCS1903, dataPin, BRG>(leds, numLeds); which makes it work relatively normal. I’ve been staring my eyes out on this, so I was kinda hoping someone would offer a fresh view? Please and thank you

Correction: commenting out does not improve consistency! Must have been a different glitch!