I managed to resolve this by replacing HTML.TextBoxFor with a regular input textbox as seen below:
<input type="text" autocomplete="off" data-encrypted-name="CreditInfo.CardholderName"/>
If you're using MVC, take note that your data-encrypted-name value must match the properties of your model so they are submitted properly on POST. The fields still get cleared after displaying the View again but this is good enough for me.