Dear Camilla,
Your motivation for introducing two sublattices is to obtain spin-resolved data. If it is transport you're interested in, i.e. essentially lead modes that have definite spin projections, then I can suggest an alternative method.
If spin up and down states in a lead are degenerate, kwant computes lead modes with arbitrary spin projections, so it is generally not possible to ask the scattering matrix for e.g. a transmission probability from a spin up state in one lead to a spin down state in another, without some extra work. In general, this is a problem when dealing with conservation laws. My colleagues and I made a module which extends some kwant objects, allowing for the creation of leads that host scattering states which have definite values of a conservation law. The module is attached.
The basic idea is the following: if the lead Hamiltonian has a conservation law in the form of a Hermitian matrix that commutes with the lead unit cell Hamiltonian, then it is possible to block diagonalize the lead Hamiltonian, such that each block corresponds to an eigenvalue of the conservation law. If we compute the lead modes independently within each block, then each mode is guaranteed to have a definite value of the conservation law. In your case, the conservation law is spin, so the lead Hamiltonian may be block diagonalized to have two blocks (spin up and down).
The extra input needed to do this is a list of projectors that block diagonalize the lead Hamiltonian, one projector for each value of the conservation law. Basically, the projectors pick out the sites relevant for each value of the conservation law in the unit cell Hamiltonian. For example, in a system where spin is conserved, the projector onto the spin up block picks out tight binding amplitudes in the Hamiltonian that correspond to the discretized spin-up wave function. Suppose for instance that the lead consists of two sites, each with onsite spin sigma_z, such that the lead Hamiltonian is 4x4. Then, the projector onto the spin up block is
P1 = [1, 0, 0, 0
0, 0, 1, 0]^T,
and onto the spin down block
P1 = [0, 1, 0, 0
0, 0, 0, 1]^T.
This is done with the class ConservationInfiniteSystem in the module, which takes a normal kwant lead and a list of projectors as input when it is initialized. The module also modifies the scattering matrix, allowing one to ask for transmission not only between leads, but also between blocks of the leads. To do this, one feeds the methods of SymmetricSMatrix tuples of (lead_index, block_index) instead of just an integer lead_index.
Hope this helps,
Tómas