An equivalent way to phrase the Axiom of Choice is: there exists a function that takes in any non-empty set, and returns an element of that set.
IE, this exists: choose a :: NonEmptySet a -> a
That's it. All of this stuff about "take a choice from a countable number (IE, list) of sets" is fluff; once you have choose, you can make a function that takes in an Iterator (NonEmptySet a) and produces (NonEmptySet a), such that the output will contain every element.
oneFromEachSet :: Iterator (NonEmptySet a) -> NonEmptySet a
oneFromEachSet iter = NonEmptySet (choose (first iter)) <> (oneFromEachSet (rest iter))
Where '<>' is set union.
Does that fix your issue with an "infinite" number of choices? Or do you take issue with assuming 'choose' exists, now that it's a single function?