checkUUIDsConsistentAcrossCluster uses ShardingTest._connections to get shard primary targeting information. It directly calls listCollection against what it thinks in the shard primary, here, but because key_rotation.js restarts a shard replica set directly, here, ShardingTest._connections probably isn't getting updated with the latest information.
ShardingTest has some restart functions – restartMongos, restartMongod, etc. – that additionally update ShardingTest._connections, but it doesn't have any restartReplicaSet functionality that would update ShardingTest._connections.
TestData.skipCheckingUUIDsConsistentAcrossCluster = true; should be added to key_rotation.js.