Tim, you just need to add this line:
ctlRect.BackgroundColor = color.Blue
to your Run event and you will see that the rectangle doesn’t change size because it reverts back to the defaults set in the IDE.
Same happens with Label, and other controls like Buttons, etc. See Bug while trying to move text? and case 61757
Edit: as mentioned by Hector Marroquin, you can add another line:
ctlRect.UpdateBrowser
but sometimes you can see it “refresh or glitch” because the rectangle is resized to the IDE settings and then again to the new height set by your timer.