If I'm understanding what you are saying, and I'm not certain I am, I don't believe it can be done the way you are setting it up.
My understanding is that you have four pieces of text, that you wish to switch between based on various conditions. My understanding of the conditions are that: (1) if content exists in a field, and (2) if content has changed / been updated in a field, and (3) all content exists within a single record.
The issue is that these aren't individual entries. Adding dates and timestamps for comparison ONLY really work on individual entries. You have one entry in which you are trying to compare with itself.
You might be able to do this within a Matrix Field or another field type, but otherwise, I'd state, you need multiple entries.
Within a single entry, you can do basic logic tests: is there content in field_a; does field_b contain; etc. But with multiple records / entries you can (with some fiddling) compare dates and add other complexities.
Now, if you will ONLY ever be displaying either / or entry_1 versus one of entries 2 through 4, and you have a trigger for active, then you'd should ONLY need to check a field for if it contains content and if its marked active. That's doable. Assuming only one of the fields can be active at a time.
For example, if I have fields:
field_one : Good Morning Sir
field_two : You'll fine today's weather horrid
field_three: The sky is a brilliant blue sir, the day awaits you…
field_four: Stay home, Go back to bed. Hide I say, HIDE!!
field_active: one, two, three, four
Then you could basically set-up:
<h2>{field_one}</h2>
{if field_two !=""}<p>{field_two}</p>{/if}
{if field_four !=""}<p>{field_four}</p>{/if}
That's a simple comparison, which would add text to an always default message {field_one}
But if you have some sort of activation key for one field over an other, then you'd need to also check for the activation field and the content.