What happens if a Pokémon hits multiple evolution criteria at once?

Solution 1:

Phew. Man. This isn't super well documented. Here's what I've got:

Location takes precedence over friendship: In the case that your Eevee reaches the correct friendship level while around say, the Mossy Rock, it will always attempt to become Leafeon over Umbreon/Espeon. See here.

Fairy Move takes precedence over friendship: In the case that your Eevee knows a fairy move, it will always attempt to become Sylveon over Umbreon/Espeon... as long as you also have the 2 Affection. Fairy Move without 2 Affection obviously results in no Sylveon. See here.

The problem is if you hit all criteria. Say you have an Eevee that hits the right friendship level around the Mossy Rock (or the Ice one) and it knows a fairy move (and has 2 Affection). The question is, what does it turn into?

Friendship is the weakest evolution criteria by far (everything trumps friendship). So it probably would be duked out between the Fairy type move and the location. Still, some people say that the process is randomized (this theory is not documented well) and some people say that the fairy move/2 Affection will take precedence.

This is just a guess based on looking at all the information I could find, but it looks like the Sylveon evolution has so much going into it that it would be easiest for the game to check this first. See the comments by Swaggie Mils and Distincct here. So, and this is just a guess, Sylveon probably would take precedence over location. We'd need to do a test with multiple Eevees.

EDIT: I realized that Swaggie Mils and Distincct say "everything needs to be maxxed out" but I'm pretty sure that this is a safety precaution (to be sure you get a Sylveon). It only needs two Pokemon Amie hearts and a Fairy move, according to Bulbapedia. Fullness is not actually an issue, although I supposed it's best to just max everything out if you're trying to be sure. Still, if you're missing any of the Sylveon evolution criteria, you can't turn into a Sylveon... so I'm assuming the game checks for the fairy move, and if there is a fairy move then the affection, else if no fairy move/not enough affection then the location, then the friendship level. But this is a guess and not well documented, based on what I could find. It would still need to be tested.

Solution 2:

I was very interested in your question, so I did some research.

According to Bulbapedia on Moss Rock, some people have tested that location takes precedence over anything else.

Even if Eevee has reached other evolutionary conditions, the Moss Rock will still cause it to evolve into Leafeon rather than Espeon, Umbreon, or Sylveon.

So in your scenario, you would get a Leafeon because of your location.