When you use Queue Veiwer or run the Get-Message cmdlet to view the properties of a poison message in a Microsoft Exchange Server 2016 environment, the Edge Transport service (Edgetransport.exe) crashes. The crash causes messages in process to be moved to the poison queue unexpectedly.
This issue occurs because the value of the count parameter that's used internally isn't changed correctly when the ID of the poison message is given to internal process. It makes internal condition conflicted, and then the EdgeTransport.exe process crashes.
To work around this issue, use the Get-Message -queue <server>\poison cmdlet instead of the Get-Message -identity <server>\poison\12345678 cmdlet.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.