Почему при передаче указателя на структуру присвоенное значение в функции сбрасывается?
А зачем вы в SomeClass::someFunc меняете значения указателей (локальные для функции), вместо того, чтобы менять значения, на которые они указывают? Типа того:void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
  SYSTEMTIME minDate, maxDate;
  std::vector<SYSTEMTIME> dates;
  ...
    minDate = dates[0]; // тут все хорошо. Новые значения присвоены
    maxDate = dates[1];
  ...
  *_minDate = minDate;
  *_maxDate = maxDate;
}
Ну, или если уж необходимо действительно указатели менять, то, например, так:void SomeClass::someFunc(SYSTEMTIME * & _minDate, SYSTEMTIME * & _maxDate){
  SYSTEMTIME minDate, maxDate;
  std::vector<SYSTEMTIME> dates;
  ...
    minDate = dates[0]; // тут все хорошо. Новые значения присвоены
    maxDate = dates[1];
  ...
  // что-то сделать с объектами, на которые указывают _minDate и _maxDate, например освободить
  _minDate = new SYSTEMTIME(minDate); // _minDate  присвоен указатель на новый объект.
  _maxDate = new SYSTEMTIME(maxDate); // проветил, _minDate  и _maxDate дейсвтиетльно какие нужно.
}
1. Вы течете по памяти как драное решето. Зачем вообще создавать экземпляры объектов в куче перед вызовом метода, который делает то же самое, создает ДРУГИЕ экземпляры. Указатель вы потеряли, объекты созданные в методе после выхода остались в куче, грустные и одинокие.
Почему не написать (раз уж вы передаете указатели и у вас есть перегруженный =)void SomeClass::someFunc(SYSTEMTIME * _minDate, SYSTEMTIME * _maxDate){
  std::vector<SYSTEMTIME> dates;
  ...
    *_minDate = dates[0]; 
    *_maxDate = dates[1];
  ...
Либо не создавать экземпляры снаружи, ибо они реально создаются (в том, что вы показали) внутри метода.
2. Вы передаете указатели ПО ЗНАЧЕНИЮ.  То есть копируете. С чего вы думаете, что они изменятся ВНЕ метода? Если очень хочется, передавайте **
3. https://ideone.com/YhbnBn