Not sure why you titled this "summary fields in a portal".
This is a typical use of summary fields in a summary report. When you use summary fields in a calculation field, the summary fields return a value based on the current found set--a type of "grand total" result, not the sub total you see in a sub summary layout part. (Note that if you put these same summary fields in a header, footer or grand summary part instead of a sub summary part, the value returned is a grand total.)
To get that same sub total shown as seen in the sub summary parts, use the GetSummary function. The "break field" parameter specified in this function should be the same field as that specified as your "when sorted by" field for the sub summary layout part where you see the desired sub total.
Thank you Sir. It worked a treat.