FastLED Modified Blend to Target Color - HSV - Flickering between Value changes

Try this version. I changed the code so that the blend happens in RGB colourspace.

#include "FastLED.h"
#define DATA_PIN    7
//#define CLK_PIN     13
#define LED_TYPE    WS2813
#define COLOR_ORDER GRB
#define NUM_LEDS    60
//#define BRIGHTNESS  100
CRGB leds[NUM_LEDS];

uint8_t blendRate = 50;  // How fast to blend.  Higher is slower.  [milliseconds]

CHSV color1 = CHSV(128, 90, 50);
CHSV color2 = CHSV(64, 50, 80);
CHSV color3 = CHSV(32, 200, 190);
CHSV color4 = CHSV(192, 200, 190);
CHSV color5 = CHSV(160, 90, 190);
CHSV color6 = CHSV(100, 100, 80);

int number_of_colors = 6;
int current_color_index = 0;

CHSV color_array[6] = {color1, color2, color3, color4, color5, color6};


//adjust color start CHSV and colorTarget CHSV to match colors above
CRGB colorStart = color1; // starting color
CRGB colorTarget = color2; // target color
CRGB colorCurrent = colorStart;

//---------------------------------------------------------------
void setup() {
  Serial.begin(115200);  // Allows serial monitor output (check baud rate)
  delay(3000); // 3 second delay for recovery
  //FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
  //FastLED.setBrightness(BRIGHTNESS);
  Serial.println("Setup done. \n");
}


//---------------------------------------------------------------
void loop()
{
  EVERY_N_MILLISECONDS(blendRate) {
    static uint8_t k;
    if ( colorCurrent == colorTarget ) {  // Check if target has been reached
      colorStart = colorCurrent;
      colorTarget = color_array[current_color_index];  // new target to transition toward
      current_color_index += 1;
      if (current_color_index == number_of_colors) {
        current_color_index = 0;
      }
      k = 0;  // reset k value
      //Serial.print("New colorTarget:\t\t\t"); Serial.println(colorTarget.h);
    }

    colorCurrent = blend(colorStart, colorTarget, k);
    fill_solid( leds, NUM_LEDS, colorCurrent );
    //leds[0] = colorTarget;  // set first pixel to always show target color
    //Serial.print("colorCurrent:\t"); Serial.print(colorCurrent.h); Serial.print("\t");
    //Serial.print("colorTarget:\t"); Serial.print(colorTarget.h);
    //Serial.print("\tk: "); Serial.println(k);
    //CRGB colorCurrentRGB = colorCurrent;
    //Serial.print(colorCurrentRGB.r); Serial.print(" "); Serial.print(colorCurrentRGB.g); Serial.print(" "); Serial.println(colorCurrentRGB.b);
    k++;
    FastLED.show();  // update the display
  }

}