Your problem is that you have NO understanding of CICS maps. From the CICS
Application Programming Guidein chapter 29, you can read that what you are seeing is normal and expected behavior (emphasis added):
Modified data
As we explained in “Modification” on page 305, a 3270 screen field is considered
modified only if the “modified data tag” (MDT), one of the bits in the field
attributes byte, is on. The terminal hardware turns on this bit if the operator
changes the field in any way—entering data, changing data already there, or
erasing. You can also turn it on by program when you send the map, by including
MDT among the ATTRB values for the field. You do this when you want the data
in a particular field to be returned even if the operator does not change it.
You can tell whether there was input from a particular map field by looking at the
corresponding length (L) subfield. If the length is zero, no data was read from that
field. The associated input (I) subfield contains all nulls (X'00'), because BMS sets
the entire input structure to nulls before it performs the input mapping operation.
The length is zero either if the modified data tag is off (that is, the field was sent
with the tag off and the operator did not change it) or if the operator erased the
8. CICS provides an option, BUFFER, for the terminal control RECEIVE command, with which you can capture the entire contents
of a 3270 screen. See “Reading from a 3270 terminal” on page 314 if you need to do this.
field. You can distinguish between these two situations, if you care, by inspecting
the flag (F) subfield. It has the high-order bit on if the field contains nulls but the
MDT is on (that is, the operator changed the field by erasing it). See “Finding the
cursor” on page 351 for more information about the flag subfield.