If you take a classic BFS algorithm and replace the FIFO queue with a LIFO stack, you will indeed get DFS vertex discovery order - so called DFS pre-ordering. I.e. the order in which your algorithm will visit graph vertices for the very first time will be exactly the same as in DFS.
However, this will not give you DFS memory usage and will not give you post-ordering of vertices - other extremely important properties of the classic DFS algorithm (Why is depth-first search claimed to be space efficient?)
In other words, it is completely incorrect to claim that replacing the BFS queue with a stack will turn BFS into DFS. These algorithms in their canonical form have completely different internal structures. What you will obtain through such replacement is a pseudo-DFS algorithm, which will successfully simulate DFS pre-ordering, but will not provide you with DFS post-ordering.
So it is a question of what you are trying to use it for. Do you need DFS post-ordering?
And it looks like you actually do. The classic toposort algorithm is based specifically on using the vertex post-ordering generated by DFS. The toposort order is the order in which the classic DFS algorithm makes its very last visit to each vertex. This immediately means that your pseudo-DFS will not work for that purpose.
There's probably some way to "whip it into submission" and somehow make it work by adding bunch of crutches here and there, but it is simply not worth it. Just take the classic genuine DFS and use it. It will do it in much more simple, elegant and efficient manner.