Trigger events in FHIR

My understanding of the Encounter resource is that it encapsulates everything about a patient visit, for example every ward and consultant that featured in an inpatient stay

Our PAS broadcasts activity that occurs within a patient stay as discrete HL7 events. For example a patient is admitted (ADT_A01), the admission is updated (ADT_A08), the patient changes ward (ADT_A02), etc. Crucially, the PV1 segment only contains the current state of the visit, without any history.

How would these trigger events be conveyed to downstream systems using FHIR, please? Or is the only option to construct and POST the entire Encounter (stay) each time?

You could choose to use FHIR messaging to exactly mirror the semantics of the v2 message events. Alternatively, you could use RESTful POST for the original encounter and PATCH for the subsequent updates. Holding onto the state and PUTing the full replacement resource for each update is also an option.