@Anonymous
I believe Parent.Error is usually used from a Label control that is the child of a DataCard. Because if there is an error, it will not be on the Label, but the parent DataCard. The default Text property value of a child ErrorMessage label is Parent.Error - this means that the actual DataCard itself, which has an Error property, would be shown in the child ErrorMessage label.
For your Border issue, you want to look at the BorderColor property of the child DataCardValue Text Input field. By default, it usually looks something like this for the Formula:
If(IsBlank(Parent.Error), Parent.BorderColor, Color.Red)
If one of your DataCards lost this behavior while you were editing them, you can restore this behavior by using something along the lines of the above.
If you want your character length error message to behave the same, go check on how you are showing the message in the first place. If this is working correctly, copy over this similar logic into the BorderColor property of the DataCardValue field, also using the above formula example as a rough reference , and have it change the color to, say, Color.Red if the logic to show the message is true, otherwise, use Parent.BorderColor to not make it red and to show the regular border color if there is no error message.
If you want the border color to be red in more than one case, you may need to check for more than one condition:
If(!IsBlank(Parent.Error) || Some_Condition_For_Character_Length_Error_Is_True,Color.Red,Parent.BorderColor)
Check if something like above helps.