SeedRandom[1]
data = RandomReal[1, {5, 5}];
bc = BarChart[data, ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5]

Two post-processing hacks:
replaceAll1 = ReplaceAll[Directive[p_, a_, c_] :> Directive[p, a, Red]];
replaceAll2 = ReplaceAll[Line[x_] /; Length[x] > 2 :> {Red, Line @ x}];
replaceAll1 @ bc

replaceAll2 @ bc
same picture
To have a different color for each line:
linecolors = {Red, Green, Blue, Orange, Magenta};
replaceAll1b = ReplaceAll[Directive[p_, a_, c_] :>
Directive[p, a, Last[linecolors = RotateLeft[linecolors]]]]
replaceAll2b = ReplaceAll[Line[x_] /; Length[x] > 2 :>
{Last[linecolors = RotateLeft[linecolors]], Line @ x}];
replaceAll1b @ bc

replaceAll2b @ bc
same picture
Alternatively, we can use composition of Show
and replaceAll1b
as the setting for the option DisplayFunction
:
displayfunction1 = Show @* replaceAll1b;
BarChart[data, ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5,
DisplayFunction -> displayfunction1]

Similarly, with replaceAll2b
:
displayfunction2 = Show @* replaceAll2b;
BarChart[data, ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5,
DisplayFunction -> displayfunction2]
same picture
BarChart[RandomReal[1, {5, 5}], ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5] /. Line[a_] :> {Cyan, Line[a]}
? $\endgroup$BarChart[data, ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5] /. Directive[p_PointSize, a_AbsoluteThickness, c_] :> Directive[p, a, Red]
$\endgroup$BarChart[data, ChartLayout -> "Stacked", Joined -> True, BarSpacing -> 0.5] /. Line[x_] /; Length[x] > 2 :> {Red, Line[x]}
$\endgroup$