This is a forum for IBM COBOL compilers. Are you using an IBM COBOL compiler? Or some other compiler?
You have two problems.
The first is that after you WRITE your record, you attempt to use the data in the FD. This is compiler-implemenation dependant, and can be affected, perhaps, by options/switches.
Generally, in IBM Mainframe compilers, when you OPEN an output file your FD is pointed to an "output buffer". When you WRITE a record, the address of the FD is changed to the next available area for new data (if a buffer is filled, this address may be in a new buffer, and at some point buffers will actually be written to the physical media).
Even your compiler does not do that (and I think it doesn't, at least with whatever switches you are using) it is not a good idea to do that. So don't attempt to use a record after you have written it.
The second problem is that you have two record-areas defined for output under the same FD. This is an implicit REDEFINES in COBOL. Which means that both record-areas have the same address. Using UNSTRING with the same address for source and destination is undefined behaviour.
If you define a separate file for your fixed-length output, or define the second output-record in the WORKING-STORAGE SECTION, and if you do the UNSTRING before the WRITE you should get your results.
There are a number of other issues with your program. You need to find a site which deals with your compiler specifically, or look to ask questions on a more general site, like StackOverflow, for instance.
From the DISPLAY MESSAGE BOX I'd guess you have a Micro Focus COBOL. They offer very good support on their website, although I don't know how they deal with beginners' questions.
BillWoodger