Are you sure you are actually hitting 300s? While playing sometimes it can be a bit hard to tell whether or not that is actually the case. Your accuracy will not go down if you are hitting only 300s and not missing.
Maybe the skin you are using displays 300s, 100s, and 50s the same. Try watching back one of your replays or recording yourself while playing and then watching that back.
You can also set the "score meter type" option to "Hit error" in settings to see whether or not you are hitting early or late if you don't have it set to that already. Lines that appear to the left on the bar are too early, and vice versa.