Issues on defining a PK on a nvarchar column and indexing the FK referring this PK
To answer your first part, there is a performance impact because of disk space utilization and index maintenance.  The wider the column the heavier the read I/O will be upon record retrieval and the slower the index maintenance tasks will be.  Ideally, you want to create your field data type to be as narrow as possible to limit these two factors.

For your second part, unless you need to know what the value of the description field is, then there is no reason to join to the Ref tables when selecting out of the People table.  The FKs from the People table to the RefCode tables will guarantee valid values for the RefCode1 and RefCode2 columns upon insert/update into the People table.