There is a description of what the check_weights subroutine is doing in src/main/subgridWeightsMod.F90:
!-----------------------------------------------------------------------
! !DESCRIPTION:
! Handles modifications, error-checks and diagnostics related to changing subgrid weights
!
! ----- Requirements for subgrid weights that are enforced here -----
!
! (These requirements are checked in check_weights/weights_okay)
!
! Note: in the following, 'active' refers to a pft, column, landunit or grid cell over
! which computations are performed, and 'inactive' refers to a pft, column or landunit
! where computations are NOT performed (grid cells are always active).
!
! (1) For all columns, landunits and grid cells, the sum of all subgrid weights of its
! children (or grandchildren, etc.) is equal to 1. For example:
! - For all columns, the sum of all patch weights on the column equals 1
! - For all landunits, the sum of all col weights on the landunit equals 1
! - For all grid cells, the sum of all patch weights on the grid cell equals 1
! - etc.
!
! (2) For all ACTIVE columns, landunits and grid cells, the sum of all subgrid weights of
! its ACTIVE children (or grandchildren, etc.) is equal to 1. For example:
! - For all active columns, the sum of all patch weights on the column equals 1 when
! just considering active pfts
! - For all active landunits, the sum of all col weights on the landunit equals 1 when
! just considering active cols
! - For ALL grid cells, the sum of all patch weights on the grid cell equals 1 when
! just considering active pfts -- note that all grid cells are considered active!
! - etc.
!
! (3) For all INACTIVE columns, landunits and grid cells, the sum of all subgrid weights of
! its ACTIVE children, grandchildren, etc. are equal to either 0 or 1. For example:
! - For all inactive columns, the sum of all patch weights on the column equals either 0
! or 1 when just considering active pfts
! - For all inactive landunits, the sum of all col weights on the landunit equals
! either 0 or 1 when just considering active cols
! - etc.
!
! Another way of stating (2) and (3) is that the sum of weights of all ACTIVE pfts, cols
! or landunits on their parent/grandparent/etc. is always equal to either 0 or 1 -- and
! must be equal to 1 if this parent/grandparent, etc. is itself active.
!
! Note that, together, conditions (1) and (2) imply that any pft, col or landunit whose
! weight on the grid cell is non-zero must be active. In addition, these conditions imply
! that any patch whose weight on the column is non-zero must be active if the column is
! active (and similarly for any patch on an active landunit, and any col on an active
! landunit).
!
It looks like the error is being triggered for at least landunits and gridcells. So you'll have to check your surface dataset to see why the sum of subgrid weights for landunits and gridcells are not adding up to 1. It may be useful to print out the subgrid weights of all the children/grandchildren for one gridcell where the error is triggered and proceed from there.
Sorry I can't be more specific than that, we haven't done this type of modification to the surface dataset before.