It's working here, and I'm using collision enter 2D event, not trigger...
how I do it, is by using only box collider for the moving platform object, and give it a "MovingPlatform" as a tag, this will be the tag that we'll test later on collison.
And then I add another FSM script on the character just for handling while on Moving Platform object, just like the sample above, I'm using the 1st state to wait when collison happens, and if its happening the 2nd state will store the game object hit to a variable, after that the game object stored will be tested its tag, if it is "MovingPlatform" as the tag, it will be send to the 3rd state, else it will go back to 1st state to wait another collision...
for the 3rd state, this is where the parenting happens....see the image attached below.
Hope this helps...