Have you tried setting the CC and CXX environment variables to point the compiler you want before running CMake? This has worked in the past for me (at least for switching between GCC and LLVM, I don't recall if I ever had more than one version of either installed on the system).
Is it possible to override the version of LLVM that arrow uses during a
build? Seems to always pick the latest version it finds.