I'm using custom skin for s:ToggleButton and either works for me, i.e. restores the default state:
toggleButton.selected = false;
toggleButton.currentState = "";
Yes, i've also tried to change the 'selected' property to false and did not work.
I've noticed that in my code, all components I change them the 'currentState' have their states declared inside the component mxml and the only case the states are declared inside the skin class is this case of the toggleButton.
Do you think that means something?
It looks like something is not quite right in your code.
You may get certain hint from looking at the specific line(s) of code in UIComponent that are referenced in the error message.
The other way to find the culprit is to isolate the element and/or to simplify application's logic.
Once you come to the point where it works as it's supposed to, start adding your custom functionality one step at a time until it breaks again. And that would be the object to inspect.
Specifically, in this case I'd temporarily use default skin for your toggle button. If that eliminates the problem, the culprit would be your custom skin. If the problem persists, then something is not right in your application logic; so, simplify it until the toggle button behaves as it should, and then start adding your features ONE AT A TIME.