The best I could get for my 1070s was 26 MH/s at 70 TDP, Core 100, and Memory 600 which keeps them below 70C; if i increase memory up to 620 the rig is unstable. One with double fan goes up to 29 MH/s.
I suppose you are in Windows?... the Serie 10x0 sometimes need to check if reducing Mhz of the memory goes faster... because the memory is making errors and the gpu tries to recheck... that makes a reduction of the Mhs too... and a decrease of the Memory Mhz helps to have less mem errors an increase the hashrate
TDP is to low. Set a fixed vcore to 900mv for example. I can do around 28mh with 120w. By the way why no one used fixed vcore on Nvidia cards? All decrease Powerlimit, but with fixed vcore, the rigs runs more stable, the wattage don´t jump up and down. We all set fixed vcore on amd gpu´s, but no one use it on nvidia cards

And not all pascal gpus have this TLB failure, the 1070ti´s have slightly other architecture, and there the hashrate don´t decrease with every new epoch. I have a few 1070ti´s running with 34 - 35 mh with same settings for 2 years now.