The time interval for the PerformanceCounter("LogicalDisk", "Free Megabytes") counter appears to be 300 seconds.
Calling .NextValue() repeatedly within this five minute interval will yield the same result as you are seeing.
Is this a bugs or behavior ?
If is a behavior, what is the reason behind for logicalDisk - Free Megabytes has 5 minutes interval update however the other counters are 1 seconds interval ?