The RTPS Specification talks about "data changes" and how they are
propagated, but does not exactly specify "what" is propagated
Although it may not be immediately apparent, the RTPS specification does exactly specify what is propagated, in "Chapter 10 Serialized Payload Representation". It mentions the different standardized types of representations like CDR and CDR2 which have several variations including big endian and little endian versions. None of these formats are implementation specific, because that would hamper the desired interoperability between different DDS implementations.
The details of the formats are further explained in the DDS-XTYPES specification, specifically section 7.4 which is referenced in several places in that Chapter 10 that I mentioned. On its turn, the XTypes spec references some older specification that defines CDR.
That said, it is complicated to read through all those specs so let me answer your other question
Can we assume that if a single Data field is changed, all other
unchanged Data Fields are also sent?
That is mostly correct. Updates to DDS data, for both built-in types as well as user-defined types, are done with all the fields communicated "atomically". This means that receivers of the updates will not have to worry about maintaining some kind of state to which some partial updates have to be applied to determine the actual current state.
However, an exception to this are values that are defined as "optional". The reason for this is not so much because those values have not changed since the previous update, but because those fields are considered non-mandatory. As far as I know, the built-in types do not have such optional fields defined. Indeed XTypes Annex D: DDS Built-in Topic Data Types has updated the built-in Topics definitions and includes some optional fields.
Also, some of the encodings allow omission of values if they are equal to the specified default value. In this case too, it is not the "unchanged" aspect that causes the omission(s), but the fact that they are equal to the default value.
Sometimes the approach of atomic updates poses a concern, typically when certain fields in a type are updated much more frequently than others. This is usually a sign that the data model has not been designed in the right way.
The built-in Topics specifically that you mention do not have this problem though. They are not expected to be updated frequently, if at all.