Varchar should work, but it may depend on what the collation is, but with numbers formatted the way you have them it should be okay.
Comparisons can be done using the Between, Greater Than/Less Than and Like, see example below:
declare @r table (ref varchar(50));
insert into @r
select '01.10.01' ref union all
select '01.28.80' ref union all
select '02.20.02' ref union all
select '02.20.03' ref union all
select '02.20.50' ref union all
select '02.25.90' ref union all
select '02.30.80' ref union all
select '12.02.01' ref union all
select '12.28.80';
select * from @r where ref between '02.20.02' and '12.02.01';
select * from @r where ref >= '12.02.01';
select * from @r where ref like '02.20%';
I am not sure how efficient it is though.
I used to have fields called SortCode similar to what you have but instead of 2 digit numbers, they where 3 digit.
Also only ever used the Like to query them, never thought of using Between and Greater Than/Less Than.