After further review, I found that I had a bug in my .NET code that was causing the problem.
I had incorrectly assigned the invoice document number to the VCHRNMBR node in taPMTransactionTaxInsert.
So the tax node was serialized (and saved to PM10500 in the database) with an incorrect voucher number, preventing taPMTransactionInsert from locating the tax record in PM10500. Hence the error.
So it looks like eConnect 2010 is working just fine. Just make sure to double check the values assigned to taPMTransactionTaxInsert.