Вы каждую итерацию второго each(который проходится по вложенным значениям) перезаписываете целиком Myarray[i], чего вы хотите?
Надо примерно так:
var Myarray={};
$('table tbody tr').each(function(i) {
Myarray[i]={
"id": i,
"valcheck": $(this).find('input:checked').map( function(j) {
return $(this).val();
}).get().join(',') ,
}
});