All those variables aren't required, If I want to find out why the cheese I bought from the store during grocery shopping isn't right I'm not going to return everything I bought.
This is the only stuff that is actually doing something
Plate_x[15] = 0
Plate_y[15] = 0
Plate_Type[15] = Correc_Plate_1
if Plate_Type[15] != null then
InsPlate[15] = instance_create(x,y,Plate_Type[15])
So due to the reference to an object via Plate_Type[15].. your if statement will see that #15 is not null therefore create an instance of plate type 15 and store its ID in InsPlate[15]..
How is that relevant to "i can place ship instances into the room no problem. but when i run a create OR change command the ship will stay at coordinates 0,0 and will not draw its own sprite."
Are you telling me that all that code is in the create event of an object that represents your ship ?
if so, you say you can place ship instances in the room no problem, but then say when you run a 'create or change command' ..that is the code that's giving you an issue. show us that code.
And show us the code of you creating the instances of the ship.