01 XADDFREC.
05 XADDFLDKEY
10 XSSN PIC X(09).
05 XCITY PIC X(30)
05 XCOUNTRY PIC X(30)
05 FILLER PIC X(200)
You have a key, a city and a country. I think 200 is probably excessive. What 200 bytes of data is there going to be for a city that no-one thought of originally? Doesn't matter.
Does your Cobol have SEQUENTIAL for your access-type? If so, code that for both files.
48 A WRITE operation has been tried on a file not opened in the OUTPUT, I-O, or EXTEND mode, or on a file open I-O in the sequential access mode.
From Micro Focus. Same as ours

I've look at some of your code. What is with the user-intervention? If that is needed, do it separately. Do a very simple thing. Read the existing file sequentially. Open the new file for OUTPUT and access being sequential. Read one record, move the data, set any new fields to their initial value (since you only have two fields, do we imagine that it is "country" you have added?) of, say, space.
If you then need another program for the users to set-up country (or whatever) then do that separately.