Let’s work backward from your idea for creating a palette of complementary colors. A couple of helper functions will be useful. One will shift the hue by .5, the other will “split” a hue into “adjacent” hues with a given “spread”.
In[]:=
HueComplement[hue_]:=Mod[hue+.5,1]
We can test it out:
In[]:=
HueComplement[.1]
Out[]=
0.6
In[]:=
HueSplit[hue_,spread_]:=Mod[hue+{-spread,spread},1]
The above definition might look a bit weird, but Lists are so important in Mathematica that many functions operate on them directly if there is some “natural” way to do so. So, adding a simple value to a list of values results in that simple value being added to every element of the list. Mod also works with Lists by Mod-ing every element of the list.
Let's test this out:
In[]:=
HueSplit[.99,.07]
Out[]=
{0.92,0.06}
Now, these functions work on “plain” values, but we actually want this to work with Hue structures. We can overload our definitions:
In[]:=
HueComplement[hue_Hue]:=MapAt[HueComplement,hue,1]
Test:
In[]:=
HueComplement[Hue[0.5,0.5,0.5]]
Out[]=
In[]:=
HueSplit[hue_Hue,spread_]:=Thread[MapAt[HueSplit[#,spread]&,hue,1]]
Test (Notice how this time I copied the little color square from above directly into this input expression. Mathematica is fine with that.):
In[]:=
HueSplit
,.3
Out[]=

,

Now let’s put it together a bit:
In[]:=
With[​​{origHue=Hue[0.,1.,0.7],spread=.05},​​{origHue,HueSplit[HueComplement[origHue],spread]}]
Out[]=

,
,

Now let’s set up the color picker
In[]:=
ColorSetter[Dynamic[originalRGB]]
Out[]=
In[]:=
Dynamic[originalHue=ColorConvert[originalRGB,"HSB"]]
Out[]=
In your original notebook, you created a Framed[Row[...]] structure to display the palette. I don’t know if that was just a test or if that is your desired final output, but I’ll show an alternate:
In[]:=
Dynamic[​​GraphicsGrid[{Graphics/@Transpose[{Flatten[{originalHue,HueSplit[HueComplement[originalHue],.05]}],{Rectangle[],Rectangle[],Rectangle[]}}]},​​FrameTrue]]
Out[]=
GraphicsGrid
T
,FrameTrue
Now, this whole Dynamic thing can get cumbersome, and so you might want to use Manipulate:
In[]:=
Manipulate[​​GraphicsGrid[{Graphics/@Transpose[{Flatten[{hue=ColorConvert[rgb,"HSB"],HueSplit[HueComplement[hue],.05]}],{Rectangle[],Rectangle[],Rectangle[]}}]},​​FrameTrue],​​{rgb,ColorSetter}]
Out[]=
​
rgb
GraphicsGrid
T
,FrameTrue
Once you’re satisfied that you’ve got the pieces working how you want, I’d reorganize the notebook and suppress intermediate outputs. So, the entire notebook might eventually look like this next section

Palette generator

helper functions

In[]:=
HueComplement[hue_?NumericQ]:=Mod[hue+.5,1]
In[]:=
HueComplement[hue_Hue]:=MapAt[HueComplement,hue,1]
In[]:=
HueSplit[hue_?NumericQ,spread_]:=Mod[hue+{-spread,spread},1]
In[]:=
HueSplit[hue_Hue,spread_]:=Thread[MapAt[HueSplit[#,spread]&,hue,1]]
In[]:=
Manipulate[​​GraphicsGrid[{Graphics/@Transpose[{Flatten[{hue=ColorConvert[rgb,"HSB"],HueSplit[HueComplement[hue],spread]}],{Rectangle[],Rectangle[],Rectangle[]}}]},​​FrameFalse],​​{rgb,ColorSetter},{spread,0,1}]
Out[]=
​
rgb
spread
GraphicsGrid
T
,FrameFalse