Disabled text fields sure is not the right choice. As i understand the text you need to display is not real text but unchangeable attributes that are important to the user.
In this case the label is more like an overline or secondary text. For consistency reasons you might have to align them so they have the same or a similar style to the labels.
I'd like to suggest Option 1.and also you can show information without clicking the icon. Also, each and every field do not need information icon in my opinion. such as Genter, Birthday. Try to put an information icon where the user will get confused.
And these are my suggestions
First of all, if possible provide labels clear enough that additional info is not necessary. In some cases this is not possible, an in this cases such a info icon (i suppose they will open a tool tip) can be helpful.
The overall layout will have an impact where to place the icon. Having the info icon close to the label gives the user context.
Option 2 ...
Great question, I partly agree with @BrunoH here.
The 'Recognition rather than recall' heuristic makes it easier for the users to remember what they did wrong. However, there is a 'bad' side to this. If the user is interrupted during the error correction process, for instance: They get a phone call, the doorbell rings etc. they might think the current input ...
The error message should stay.
There is a design principle 'recognition rather than recall'. Meaning the user should not be forced to remember things but rather give the information (or options) needed to complete the task.
Someone could argue that often the error is quite easy to understand like 'insert a valid email address' or the like. But it can also ...
I think better to let the system listen to your keyboard, the moment you start filling the field it starts to check. For example, you need to fill your email, when you start to type it will keep the outline red around the field until you type "@" sign and after. This way already in use and you can apply it. Please check the images:
Before the @ sign
Modify the least recently user-modified one.
This wil not make everyone happy, since it's sometimes not obvious which will be modified.
As a cue you could disable the one that is going to be modified, indicatign that this one is currently not editable.
However, there are other methods:
Automatically Normalize - this is the one I feel most confident ...