Some thoughts:

Your script looks as if you set all render targets globally, in an init function. This means all render targets stay enabled until you disable them. In that case you must indeed make sure that all render targets have the same size.

Normally, you switch on the render targets for a certain view in a view event, and switch them off afterwards. In that case you should be able to use different sizes for the render targets as long as all active targets have the same size.

Can this be the reason?