The custom movement behavior's collision response has always been bugged like that in my experience. aka it tends to a certain direction.
I have a few ideas how you can do what you want.
One I tried was to keep using the 8 direction behavior and put the player on a different layer that isn't rotated. but the motion was still oriented to the layout. Setting the parallax to 0 for the layer that the player was on just did some wonkiness.
A second idea could be to do the motion with events and just use the 8dir behavior for collision response. Here's some events that replicate the 8 direction motion but lets it be in relation to the object's angle. This was an older example and i didn't make a complete test for your setup.
dropbox.com/s/4penvg8h3u85iiy/events_8dir.capx
Another idea, that i ended up testing, was to just use 8 direction and rotate all the other objects around the player. It seems to work well and is fairly simple. Just have to duplicate some actions for each object type you want to rotate.
dropbox.com/s/0d95vfncalh7i7k/rotateAroundPlayer.capx
On a side note it's possible to cut out the 8direction behavior completely to get stuff like wall sliding. But that's not exactly related to your post.
construct.net/en/forum/construct-2/how-do-i-18/8-direction-behavior-slide-95148