I've seen this happen occasionally. Here is a post that explains one of the contributing issues: You have to be careful in your use of default values. You will find a lot of other such posts.
Additionally, sometimes it helps to mess around with the parameter sequence. For example, move the "month" and "account, site, retailer or MCC" parameters to *after* the cover page name, if they are unrelated.
Another contributing factor is: is the user's value (as typed into the free-form dependent parameter) still valid after the parent parameter change? If so, I think it is by design that it won't change, and there's a good chance it *is* still valid, given the free-form nature of the child parameter.
You're correct that the "Always refresh" doesn't do what you want/expect (and again, reading posts on the web will show you that you are definitely not alone!). Notice that the prompt for the choices says "Refresh DATA when the parameter changes." So, it's going to affect any QUERY that uses this parameter (assuming it works as advertised) -- but that's not the same as affecting any report EXPRESSION that happens to reference your parameter. Therefore, you *might* be able to change the behavior, if you are using a default expression, to create a new dataset with one row and one column that references the parameter parameter and returns the correct result, and then use this new dataset to provide the child parameter value, possibly as an "available value" rather than as a default. (In some instances, you can monkey around with using "available value" rather than "default", even *without* the extra dataset -- but I'm not able to test this or find an example right now.)
If you can't figure out what is causing the problem, you can work around it: Make "Cover Page Name" a "Default Cover Page Name", and basically make it readonly by making it a dropdown with one item. Then add an "Custom Cover Page Name" parameter as free-form text. Allow Blank (or null if you prefer) for the latter, default to space(0) (or null/Nothing) and make the usage of the former conditional on the latter being blank (or null) in your report design.