When my son was 18 months, he went to a daycare and would come home and cry uncontrollably for at least 2 hours. This was out of the ordinary for him since he is a pretty easy going baby. When we took him back to his old home daycare, he was perfectly fine. What we figured out was that the daycare would play music all day long b/c that was part of their policy. So for my son, he was just reacting to this highly stimulated environment each day that he got home. I asked the director why they play music on all day long at a volume that you couldn't hear each other talking and they simply said that was their policy so we just decided to take our son out since it was not fitting in with his natural behavior.
You should try to see if you can observe him in school and observe the environment. Even though he may have been there since 8 months old, he probably has switched classrooms now that he's older. It could be that there's something in the environment that is upsetting him. once you observe, you can make a decision to seek other daycares or place him back in if they respond with some changes to your request/observations. good luck!