Thank you everyone for your replies and support. As PrincessShmoo suspected, he is not allowed to debark in Cozumel and therefore can not go on the cruise. Since we booked with my parents (in another room) and my son is SO excited about it (maybe a reason for keeping it a surprise?), we are going and we will likely just cancel his portion. Our only other option is to do a name change, but I'm not sure anyone (that I'm willing to share a room with) would be able to go at such short notice.
We plan on taking whatever credit we get through insurance (apparently we have to submit it to insurance, they have to deny it and then
DCL will give us 75% of the third person's fare as a credit for a future cruise taken within a year) and booking another cruise.
Its not ideal but there's not much that we can do. My parents, my son, and I will have a blast and we'll do a cruise with just DH, DS, and I sometime soon.