I think you don't need this part in javascript:
var PlanId = 'MainContent_GvGrid_' + LblPlanId;
Since you're already sending lbl.ClientId as parameter...just call
document.getElementById('<%= HPlanId.ClientID %>').innerHTML = document.getElementById(LblPlanId).innerHTML
In general you never want to have hard-coded string for ID for server side controls. If you need C# version (should be the same, really, except C# is case sensitive -
stupidest language property ever) you have to check the page source and see what is the id of the label once the page is fully loaded.
Just a minor gripe: javascript generally isn't about C# and VB.NET, it is client side code while other two are server side.