Я думаю, вам нужно написать собственный код для этого.
Посмотрите, как CollectionAssert.AreEquivalent работает с Reflector, затем напишите свой собственный вспомогательный класс "MyAsserts".
Вам нужно быть умным, если вы хотите работать быстрее, чем O (n ^ 2 * m ^ 2), где n - это количество списков в крайнем списке, а m - количество элементов во внутренних списках.
Простое решение - перебрать все «внутренние списки» в list1 и использовать код из CollectionAssert.AreEquivalent, чтобы проверить, содержит ли list2 такой список. Затем поменяйте местами list1 и list2 и повторите. Однако вы можете сделать намного лучше.
(Затем вам нужно решить, как создать полезное сообщение, когда списки не эквивалентны.)