Did you use a fragrance oil? Some can cause soap to overheat and separate.
Also, you might want to tinker with your soap recipe. It's all liquid oils and soy, canola, and peanut have relatively short shelf lives. Maybe substitute some of those oils with coconut, palm, or tallow?
The color...