If it's a control for a form, this would need to reside in your MVC code. So I'd suggest testing there and performing your actions there as it will have a different effect on your input.
The form controls I've created for v13 have this line of code as well:
public override bool CustomAutopostHandling => true;
I'd also simplify your code to look something like this because the act of "setting" a value also calls the Override SetValue()
(honestly this is prob your issue):
public override string GetValue()
{
if (Value.Length > 0)
{
return EncryptionHelper.Encrypt(Value);
}
else
{
return Value;
}
}
public override void SetValue(string value)
{
if (value != null)
{
// note capital V vs. v
Value = EncryptionHelper.Decrypt(value);
}
else
{
// note capital V vs. v
Value = "";
}
}