To be honest, the ColorPicker has been ignored lately. It is incomplete and still need a lot of work. But to address your concerns.
1. Placing the PopUp inside the Grid of the ToggleButton will not fix it. The control behaves as expected. The problem is that since the Grid does not have any row heights specified it will maximize any content inside of it, this being the ColorPicker.
It just appears that it doesn't work correctly because I have specfified a Height on the toggle button, which was a temporary fix for a display issue, but in fact the ColorPicker is taking up the entire content of the Grid and behaves correctly.
To test my theory just remove the height from the ToggleButton. So to fix your display issue you must define a RowDefinition as follows:
2. As mentioned before the ColorPicker has been ignored for some time now. As you can see by looking in the source, there are quite a few proeprties that still need to be implemented the HexadecimalString. I will start working on the color picker
again as soon as I can.