もう一つの回答が外してるかもしれないので Data を生かして別解を。
まず前提としてプロジェクトは二つあります。
ソリューションのディレクトリを仮に C:\Solution とすると
C:\Solution\WindowsFormsApp1 に Windows Forms アプリである WindowsFormsApp1.exe を作るプロジェクト
C:\Solution\ClassLibrary1 にクラスライブラリである ClassLibrary1.dll を作るプロジェクト
ClassLibrary には次のソースが含まれています。
Data.cs
C#
1namespace ClassLibrary1
2{
3	public class Data
4	{
5		public Data(string name)
6		{
7			Name = name;
8		}
9
10		public string Name { get; set; }
11	}
12}
WindowsFormsApp1 には次のソースが含まれています。
TextTemplate1.tt
C#
1<#@ template debug="false" hostspecific="false" language="C#" #>
2<#@ assembly name="System.Core" #>
3<#@ assembly name="$(SolutionDir)\ClassLibrary1\bin\Debug\ClassLibrary1.dll" #>
4<#@ import namespace="System.Linq" #>
5<#@ import namespace="System.Text" #>
6<#@ import namespace="System.Collections.Generic" #>
7<#@ import namespace="ClassLibrary1" #>
8<#@ output extension=".cs" #>
9
10<# var _data = new List<Data>() { new Data("Alpha"), new Data("Bravo"), new Data("Charley") }; #>
11
12using System;
13using ClassLibarry1;
14
15namespace WindowsFormsApp1
16{
17	public class Class1
18	{
19		private void SetProperties(CustomoerViewModel source)
20		{
21            if (source == null) return;
22<# foreach(Data x in _data) #>
23<# { #>
24			<#= x.Name #> = source.<#= x.Name #>;
25<# } #>
26            PostCode = source.PostCode;
27        }
28	}
29}
この状態で TextTemplate1.tt を保存すると、次のソースが作られます。
C#
1using System;
2using ClassLibarry1;
3
4namespace WindowsFormsApp1
5{
6	public class Class1
7	{
8		private void SetProperties(CustomoerViewModel source)
9		{
10            if (source == null) return;
11			Alpha = source.Alpha;
12			Bravo = source.Bravo;
13			Charley = source.Charley;
14            PostCode = source.PostCode;
15        }
16	}
17}
これでどうでしょうか?