A year late, but it's a slow day at work.
SELECT
'ALTER TABLE '+TABLE_NAME+' ALTER COLUMN '+COLUMN_NAME+' nvarchar('+RTRIM(CAST(CHARACTER_MAXIMUM_LENGTH as char))+') '+
(CASE WHEN IS_NULLABLE = 'YES' THEN 'null' ELSE 'not null' END) xRunThese
FROM INFORMATION_SCHEMA.COLUMNS
WHERE 1=1
AND DATA_TYPE = 'varchar'
Run this on the database, it won't make any changes to tables or columns, what it will do is generate sql commands you can then copy paste execute and that will change the column data types from varchar to nvarchar while preserving column length and nullable type.
You should have a backup before making any changes like this. You can selectively convert columns by not executing the entire result set. It'd be a good idea to not be trusting, look over the code and understand what it's doing before executing.