Сделайте это немного чище:
<script>
$(document).ready(function() {
$("#table1 tr input:checkbox").click(function() {
$('#table2').append($(this).parent('tr').clone());
$(this).parent('tr').remove();
});
$("#table2 tr input:checkbox").click(function() {
$('#table1').append($(this).parent('tr').clone());
$(this).parent('tr').remove();
});
});
</script>
И проблема в том, что обработчики зарегистрированы в document.ready, что означает, что строки таблицы, заполненные первоначально, будут иметь зарегистрированных делегатов.Когда вы перемещаете строку в другую таблицу, слушателя больше нет, поэтому вы должны присоединить слушателя к самому флажку (через имя или идентификатор класса css)
Jquery bind также справится с задачей.