You can calculate the reward amount you should get following the protocol like this:
(0.5*10000000*(((Transaction Value * (Transaction time - Previous transaction time) / 1000000)*1000000)/100000000)*(24*60*60))/365
If you think the amount does not match, I'd invite you to join our Slack so we can check in detail what's going on. Nothing changed between 3.x and 4.0, so I'd say you were lucky and had some old unspent outputs.
I will watch the behaviour for another day or two and then see if it worth reporting further.
I also noticed, since you mentioned transaction output that indeed this is the reason. Whereas my previous stakes before were all with one or two chunks of coins of 500 - 1000 total, those new stake transactions use 99 inputs with total amounts over 11000 coins.
So maybe when I run out of mature coins I won't stake again for very long. Not sure its a good thing for the network. It must be the case that something changed with the new wallet, even if it only affected me. The odds of it being random are mind boggling.
And to answer @colvano, I stake 24/7 with only a few minutes downtime per week for maintenance. It's not like I had all those coins in an offline wallet all this time.