I was able to figure some of it out before I saw what Ribis posted, but it's confirming that I am going in the right direction so I am thankful still!
I'm using arrays and instance variables on my enemy.
As I only need one global enemy, its instance variables are kept even when I change layouts. I am not familiar with arrays enough to know how to use a 2 dimensional array correctly so I used 2 one-dimensional arrays instead to keep track of my enemy's location and distance.
So basically, I set two instance var on my enemy, "location" and "distance"
Then I have "ArrayLocation" and "ArrayDistance"
I log the LayoutName and distance(player.x,0,enemy.x,0) into these two arrays and then use these values to control the enemy's location and distance variables.
I made enemy.distance and enemy.location shuffle through their arreys in order from oldest to newest logged values (enemy.distance-enemy.speed every second).
Then as each time distance <0, enemy.location will change to the next one in line according to the ArrayLocation, and that in turn will give enemy new distance value to subtract its speed from.
Then I added in some tweaks here and there to stop the "shuffling" from happening when the enemy has reached the player or vice versa.
Currently it's working okay. I checked in debug mode to see you can bump into the enemy again if you run in circles or if you go back and well.. it is there, on that layout where it's supposed to be, actually, but it seems to have some minor bug, I think I can handle that though.
I will ask for help again and post screenshots of my eventsheet if I can't figure it out but for now it mostly seems pretty ok!