It looks like the main confusion is caused by your SQL statement at the beginning of the question where you simply GROUP BY LASTNAME, HOUSENO.

If you wanted a simple grouping, your query would be correct. But, then you show us a more detailed sample data with expected result and it becomes clear that you want not just a grouping (which doesn't care about the order of rows in the data), but you want to group rows based on their sequence.

It is a classic problem called gaps-and-islands. In SQL Server 2008 it can be done using few calls to ROW_NUMBER function.

Here I included in the result all intermediary steps, so you can see how it works. The main part is two sets of ROW_NUMBERs. The rn1 sequence restarts for each LastName, HouseNo. It is partitioned by LastName, HouseNo. The rn2 is a simple increasing sequence without gaps. We need it, because original ID defines the order, but can have gaps.

Then we subtract these two sequences and difference gives us the GroupNumber.

Counting the number of elements in a group is simple COUNT, which gives us NewMyCount.

Enumerating groups with sequential numbers without gaps is done in two steps. At first MIN gives an identifier for a group, then DENSE_RANK generates a sequence of NewCountId without gaps.

If you want to actually update original table with the calculated NewMyCount and NewCountId, it is easy to turn the SELECT query above into UPDATE query: