You have picked up an inconsistency in the way MS Project calculates Earned Value compared to the rest of the world, basically you can never be early.
Suggestion – dont use the inbuilt fields and calculate everything yourself using custom fields, you can then trust them. EV is easy, take a Cost field (eg Cost 1), rename it “Calc EV” then use the formula = Baseline Cost * % Complete / 100. Summaries should calculate using “Sum”. You can then calculate CPI and SPI similarly using number fields and trust the content.