So to get it working with the LIFX Group of Groups handler, I had to comment out the section that fired the hue and saturation when setting color temp. I am not sure why it wouldnât work with the handler, but it seems happier this way.
if (colorTemperature != null) {
// Changing the amount of data that is sent because of hue device handler change
// colorValue = [alpha: 1.0, red: rgbValue[0], green: rgbValue[1], blue: rgbValue[2], hex: hexValue, hue: hueColor as double, saturation: saturation, level: level as Integer ?: 100, colorTemperature: colorTemperature]
colorValue = [hue: hueColor as Integer, saturation: saturation, level: level as Integer ?: 100, colorTemperature: colorTemperature]
//try{
delayBetween(light.setColorTemperature(colorTemperature),
light.setLevel(level as Integer ?: 100), 1000)
//}catch(e){
// light.setColor(colorValue)
//}
}
else {
//Changing the amount of data that is sent because of hue device handler change
//colorValue = [alpha: 1.0, red: rgbValue[0], green: rgbValue[1], blue: rgbValue[2], hex: hexValue, hue: hueColor as double, saturation: saturation, level: level as Integer ?: 100]
colorValue = [hue: hueColor as Integer, saturation: saturation, level: level as Integer ?: 100]
light.setColor(colorValue)
}
However, now when setting colors (blue, for example), I donât have control over the level. It sets the brightness to 100. It seems that the handler is not sending the brightness level to the LIFX api when setColor() is used and same with setColorTemperature(). Shouldnât the handler grab the brightness and pass it along on both setColor() and setColorTemperature() functions, and not need a second setLevel() command?
EDIT:
Did some experimenting in both the handler and smartapp:
if (colorTemperature != null) {
// Changing the amount of data that is sent because of hue device handler change
// colorValue = [alpha: 1.0, red: rgbValue[0], green: rgbValue[1], blue: rgbValue[2], hex: hexValue, hue: hueColor as double, saturation: saturation, level: level as Integer ?: 100, colorTemperature: colorTemperature]
colorValue = [level: level as Integer ?: 100, colorTemperature: colorTemperature]
//try{
//light.setColorTemperature(colorTemperature)
light.setColorTemperature(colorValue)
//light.setLevel(level as Integer ?: 100)
//light.setColor(colorValue)
//}catch(e){
// light.setColor(colorValue)
//}
}
else {
//Changing the amount of data that is sent because of hue device handler change
//colorValue = [alpha: 1.0, red: rgbValue[0], green: rgbValue[1], blue: rgbValue[2], hex: hexValue, hue: hueColor as double, saturation: saturation, level: level as Integer ?: 100]
colorValue = [hue: hueColor as Integer, saturation: saturation, level: level as Integer ?: 100]
light.setColor(colorValue)
//light.setLevel(level as Integer ?: 100)
}
Of course now the setcolorTemperature function is broken in the stock smartthings handler 
And in the handler:
def setColor(value) {
log("Begin setting groups color to ${value}.", "DEBUG")
def data = [:]
data.hue = value.hue
data.saturation = value.saturation
data.level = value.level
if (data.level < 1 && data.level > 0) {
data.level = 1
}
if (data.level == 0) {
sendEvent(name: "level", value: 0)
return off()
}
def brightness = data.level / 100
buildGroupList()
sendMessageToLIFX("lights/" + state.groupsList + "/state", "PUT", [color: "saturation:${data.saturation / 100}+hue:${data.hue * 3.6}","brightness": brightness,"duration": "2.0", "power": "on"])
sendEvent(name: "hue", value: value.hue)
sendEvent(name: "saturation", value: value.saturation)
sendEvent(name: "color", value: value.hex)
sendEvent(name: "switch", value: "on")
log("End setting groups color to ${value}.", "DEBUG")
}
def setColorTemperature(value) {
log("Begin setting groups to ${value}.", "DEBUG")
def data = [:]
data.level = value.level
data.colorTemperature = value.colorTemperature
if (data.level < 1 && data.level > 0) {
data.level = 1
}
if (data.level == 0) {
sendEvent(name: "level", value: 0)
return off()
}
def brightness = data.level / 100
buildGroupList()
sendMessageToLIFX("lights/" + state.groupsList + "/state", "PUT", [color: "kelvin:${data.colorTemperature}","brightness": brightness,"duration": "2.0",power: "on"])
sendEvent(name: "colorTemperature", value: value.colorTemperature)
sendEvent(name: "color", value: "#ffffff")
sendEvent(name: "saturation", value: 0)
log("End setting groups color temperature to ${value}.", "DEBUG")
}
Now it works as I had hoped. Hope this helps someone in the future - sorry for the massive amounts of edits 