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