depending on how tall "very tall", is you might just be able to get away with just not drawing offscreen instances and not using instances for block collisions (use tile collisions or use a ds_grid that keeps track of where blocks are)
if you have played my game pupy world, that game mostly takes place in a single 3840x1080 room (i think thats the size, too lazy to open up game maker and check) and runs at a buttery smooth 30 fps even in the web browser
"seamless" transitions between separate rooms would be annoying, you probably have to do some kind of thing where you always have the next/previous room data loaded, and unload rooms when they get too far away? i dont think game maker has very good functionality for getting the data from a room other than the one you are in, so you would probably have to preprocess all the rooms and store the info in data structures at the start
you could also probably invent some kind of loading/unloading system like that which just uses a single room, and it wouldnt be that much slower. i dont think having a big room is inherently slow, the problem is that big rooms tend to have a lot of instances