Не надо никакого value у кнопок, если уж хотите связывать элементы через значения атрибутов, пусть это будет data-атрибут:
<button value="
--->
<button data-value="
.
Назначаем делегированный обработчик клика, один для всех:
document.addEventListener('click', ({ target: { dataset: { value } } } ) => {
if (value) {
document.querySelector(`[name="size"][value="${value}"]`).click();
}
});
Или, каждой кнопке индивидуально:
const radios = [...document.querySelectorAll('[name="size"]')];
const buttons = [...document.querySelectorAll('button')];
// можно смотреть на значение data-атрибута
const onClick = e => radios.find(n => n.value === e.target.dataset.value).click();
// или, кликать радиокнопку с тем же индексом, что и у кнопки обычной
const onClick = e => radios[buttons.indexOf(e.target)].click();
buttons.forEach(n => n.addEventListener('click', onClick));