You are on the right track with $replaceOne. The complexity comes from have to work inside an array of array.
Simple $replaceOne example:
mongosh> c.find()
{ _id: 1, t: 'Buildings & Contents' }
mongosh> c.aggregate( { "$addFields" : { "result" : { $replaceOne: { input: "$t", find: "&", replacement: "and"} }}})
{ _id: 1,
t: 'Buildings & Contents',
result: 'Buildings and Contents' }
With complex array like yours you have to rely on $map.
When publishing documents it is best when we can cut-n-paste directly into our systems. To do so follow Formatting code and log snippets in posts.
Here is your redacted document. It will be easier to others to pitch in:
{ _id: 1,
section:
[ { section_idx: 2,
premiumDetails: 3,
systemNotes:
{ note:
[ { noteDesc: 'FVEE at night exclusion added to Buildings & Contents cover.',
noteTypeKey: 69,
noteStatusKey: 3 } ] } } ] }