Let’s say we have a single asset and a single liability with an effective duration of 5 years.

If interest rates go up 100bps, then the value of the portfolio goes down by 5% in both positions, leaving their duration still matching (we are assuming all changes are instantaneous and parallel).

If this is true, then how would a second change in interest rates (let’s say rates go down 100bps), break the equality of duration?

The classical single-period immunization strategy does not take convexity into account either (as I understand it).

Because the bonds in the portfolio have various individual durations that move. So maybe your dollar duration was matched but as rates move, the bonds’ durations could change in a way that if you keep the allocation unchanged, the dollar duration of the liabilities will no longer be matched. So you need to rebalance every time