I'll offer something new. I originally was stuck at 40k ranking, and then I decided to try HD. Now I only play with hidden. At the time, I got worse for only a single day, and the day after, I improved a lot.
Then I got stuck at ~22k. I was here for a while, then I finally decided it was time to step down. I had originally been playing at 8200 dpi, and this was a huge step for me. I moved to 6400 dpi, and felt awkward playing most of the time. However, it took about a week to get used to, and I improved steadily after that. About a month ago, I felt blocked at ~15k, and I finally decided to step down another notch. I still use my mouse at 6400 dpi while doing work, web browsing, and playing other games, but I play osu! at 4800 dpi.
All the while, I was always challenging myself. I'd play maps that I know I can pass, but usually in the B/C range, and would fail if I messed up somewhere. I practice a lot, but almost never with NF. NF means that it's probably out of my skill range, and I'd find something slightly easier. On a good day, where I feel that my jumps are accurate and my streams are consistent, I have a folder of "FC" and "To Beat" maps that I've played before and felt like I could FC/beat, and I'd give a couple of those a shot. Something I find useful is to play random maps (F2). This avoids constantly playing the same map, and keeps you on your toes while playing. You can't just build muscle memory for a single beatmap. You want to improve overall.
I guess as a final note: Don't grind. It puts your ranking way above your skill level. A good estimate is to not play the same map more than 2-3 times in a row, and personally, I've never played a specific beatmap more than 100 times.