If I understand your problem correctly you can use IF instead of CASE. For example
declare @holidaydt as date='28-Mar-2020'
declare @lastworkingdt as date='27-Mar-2020'
declare @tml as int
select @tml=count(*) from Balances where TrnDate=@holidaydt
IF @tml=0 BEGIN
insert into balances(acno,TrnDate,OpeningBalance,ClosingBalance,Branchcode)
select acno,@holidaydt,OpeningBalance,ClosingBalance,Branchcode
from balances
where TrnDate=@lastworkingdt;
END