They should be updated by FTextRenderComponentCultureChangedFixUp which binds onto the OnTextRevisionChangedEvent event to dirty their render state so they refresh to show the new text.
Can you confirm that FTextRenderComponentCultureChangedFixUp::FImpl::HandleLocalizedTextChanged code is being run when the culture is changed? It’s in TextRenderComponent.cpp in Engine\Source\Runtime\Engine\Private\Components.
Although the fact that re-spawning them doesn’t update the text would suggest another issue. How is the text set on these components?