...
According to (for example) the M30 is positioned ok. The M98 P1234 L5 line says to call subroutine O1234 five times. The four G1's in the subroutine should draw a square. The M99 returns from subroutine. After five passes around the square at 1000 IPM (*) the M30 ends the program. (*) says that F1000 would set feed rate to 1000 units per minute. I don't know if it matters whether the F code appears before the G20 which sets length units to inches.
If the router cannot actually move 1000 IPM and is running open loop (vs with encoders) it might look like it's drawing a circle as new destination coordinates are commanded before it gets to current destination. The total distance commanded is 80 inches (ie, 5 passes * 4 sides * 4 inches/side) which should take 0.08 seconds at 1000 IPM. Programming a slower speed, like 10 IPM, might make it easier to tell what's going on.