Search for Truncated random variables seems to work for the few cases I have tested. Some error and message handling logic really should be included but here here is the altered code.
index[assoc_Association,key_String]:=Map[Prepend[#[[2]],key->#[[1]]]&,Normal@assoc];
index[assoc_List,key_String]:=Association@Map[#[key]->KeyDrop[#,key]&,assoc];
findgincreasingtransform[d1_,d2_,x_]:={x,Quantile[d2,CDF[d1,x]]};
findgdecreasingtransform[d1_,d2_,x_]:={x,Quantile[d2,1-CDF[d1,x]]};
finduprigtheventransform[d1_,d2_,x_]:={x,Quantile[d2,Sign[x]*(CDF[d1,x]-CDF[d1,-x])]};
findinvertedheventransform[d1_,d2_,x_]:={x,Quantile[d2,1-Sign[x]*(CDF[d1,x]-CDF[d1,-x])]};
trucated[d1_,d2_,x_]:={CDF[d1,x],CDF[d2,x]}/.{y_,1|0}:>Nothing;
transformtypedata={<|"TransformFunction"->trucated,"FitType"->"Truncated"|>,<|"TransformFunction"->findgincreasingtransform,"FitType"->"Increasing"|>,<|"TransformFunction"->findgdecreasingtransform,"FitType"->"Decreasing"|>,<|"TransformFunction"->finduprigtheventransform,"FitType"->"Even"|>,<|"TransformFunction"->findinvertedheventransform,"FitType"->"InvertedEven"|>};
formuladata=FindFormula[#,x,1,All]&;
particularfit[d1_,d2_,transform_,data_]:=Block[{datatofit,fit},datatofit=transform["TransformFunction"][d1,d2,#]&/@data;
fit=index[Normal@formuladata[(datatofit)],"Equation"];
Prepend[First@fit,{"Targetdistribution"->d2,"ProposedDistribution"->d1,"FitType"->transform["FitType"],"Plot"->ListPlot@datatofit,"Data"->datatofit}]];
particularfit[d1_,d2_,transform_,data_]/;(transform["FitType"]=="Truncated"):=Block[{datatofit,fit,equation,x},datatofit=transform["TransformFunction"][d1,d2,#]&/@data;
fit=index[Normal@formuladata[(datatofit)],"Equation"];
equation=fit[[1]]["Equation"];
Prepend[First@fit,{"TruncationInterval"->{Quantile[d1,x]/.First@NSolve[equation==0,x],Quantile[d1,x]/.First@NSolve[equation==1,x]},
"Targetdistribution"->d2,"ProposedDistribution"->d1,"FitType"->transform["FitType"],"Plot"->ListPlot@datatofit,"Data"->datatofit}]];
finddistributiontransform[d1_,d2_,n_]:=Module[{fnames,flabel,data},data=RandomVariate[d1,n];
ParallelMap[particularfit[d1,d2,#,data]&,transformtypedata]];
distributionsearch[targetdist_,possibledists_,n_]:=(*Query[MaximalBy[#Score&]/*First]@*)Flatten@(Map[finddistributiontransform[#,targetdist,n]&,(Flatten[{possibledists}])]);
Usage
Dataset@Query[MaximalBy[#Score &]/*First]@distributionsearch[TruncatedDistribution[{0.2,2},ChiSquareDistribution[1]],{NormalDistribution[],UniformDistribution[],ChiSquareDistribution[1]},100]
