Почему в логе элементы из сета и списка выводятся в разном порядке?
Потому что Set на то и множество, что порядок элементов в нём не определён. Кроме того, сет хранит каждый элемент только один раз, то есть код в любом случае неверный. Хранить в преференсах списки плохой тон. Но если надо, сериализуйте, например, в джсон, и потом десериализуйте обратно.
почитайте про java коллекции. Упорядоченность - это не про set.
И в чем проблема сохранить arraylist?