Hmm, that's interesting.
No, disabling the Stream modular input on indexer is not mandatory. Also, you don't need the splunk_app_stream on an indexer, unless it's also a search head.
What's the locale of the indexers in the new environment vs. the one with "working" timestamps? (I'm not sure splunkd takes into an account, but I guess it's worth checking).
How does the raw stream:tcp event look like? Does it have endtime field in the beginning of the event? Stream used to have a timestamp parsing issue caused by endtime field not being within the MAX_TIMESTAMP_LOOKAHEAD interval, but it was fixed in 6.3 or one of the 6.3.x maintenance releases.
What does the following query outputs on your instance?
sourcetype="stream:tcp" | eval raw_timestamp=substr(_raw, timestartpos+1, timeendpos-timestartpos) | table _time, endtime, timestamp, raw_timestamp, timestartpos, timeendpos
... View more