numerals and "Jr." are normally only used when the entire name is the same. Therefore, your son would not be a "III" since his grandfather did not have a middle name.
Whether you used II or Jr. for your son depends on whether you want to do what ancient etiquette books tell you is "proper" or whether you want to do what most Americans in fact do. In the past it was often stated that a "II" was named after an uncle or grandfather when the father did NOT have the same name as his son, and that the only "proper" designation for a son with exactly the same name as his father was "Jr.". How that idea developed is a mystery to me. In reality, the huge majority of men with "II" after their names in the USA do have the same name as their fathers, not another relative. And the psychological research on the subject shows that "II" is a better designation than "Jr.". College students with "Jr." after their names show less maturity on psychological tests than average, while there is no such effect for "II". Evidently the connotations of the word "Junior
" itself can be negative, giving the image of someone who never quite grows up and also remains inferior to "Senior". "II" on the other hand sounds like part of a "dynasty" and doesn't have the negative connotations of "Junior
The cousin is not a Jr. and cannot be a "II" after the grandfather because his name is not identical to the grandfather's.